Cinnamon Reporting has been newly implemented with the following goals
Goal
Description
Example
“Web-first”
using JavaScript technologies and libraries allows for isomorphic code that can run on the server as well as in the user’s browser
chart engine is based on d3.js / vega.js and all charts are rendered exactly the same way for online reports (in the brower) as for PDF reports (on the server)
Cinnamon’s reporting logic (segmentations, translations) is written in TypeScript and therefore can be run both on the server and in the browser as well
Scalability
using node.js as our server platform allows for scalability
our reporting services are designed to run as microservices
separating the services for general reporting productions, word/pdf rendering and portal services
use of streaming software to decouple services
use of caching for all data sources to improve performance