Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

  • PM2 or kubernetes clusters

  • redis streams

  • redis caching

Open source

  • all features are based on open-source libraries (where enterprise-grade is available)

  • only mandatory comercial software is Aspose.Words for PDF-reporting

  • node.js, express.js

  • redis

Independence of data source technologies

  • main access to data sources is via REST API’s

  • preference for document databases as data/document store

  • mongoDB

Overview

Drawio
mVer2
zoom1
simple0
zoominComment10
inCommentcustContentId03366387748
pageId3365896199
custContentIdlbox33663877481
diagramDisplayNameCinnamonArchitectureOverview.drawiolbox1
contentVer1
revision1
baseUrlhttps://bmpi.atlassian.net/wiki
diagramNameCinnamonArchitectureOverview.drawio
pCenter0
width991.0000000000002
links
tbstyle
height480.9999999999999

...

Service / Component

Description

Technologies

Report Production Service

  • Mass-customisation of reports through flexible report types defined on the basis of intelligent, re-useable building blocks & powerful parametrisation

  • Supports business users to manage report types, translations, product/client group parameter profiles, etc. via diverse UI’s

Node.js based microservices leveraging vast universe of open source packages:

Image Modified

Multiple options for document / object persistency:

Image Modified

Image Modified

Code-base in TypeScript allows sharing code between backend and browser:

Image Modified

Scalability through streaming and caching:

Image Modified

Scheduling Service

  • Data-driven report scheduling (based on availability of required data quality in data sources)

  • Can be triggered by external job scheduler

Portal Services

  • User security & session handling

  • User specific report catalog dynamically built from matching report executions

...