The architecture has been designed to handle the high data throughput coming from integrations.

The web app is composed of a Vue.js front-end application, and a Node.js static server backed by a PostgreSQL database. There are several serverless services that help with asynchronous computation and data ingestion. Furthermore, we are using a few helper services such as Meilisearch as a search engine, and Cube.js for building reports and analytics.


Serverless services

We currently have four different Serverless services for different use-cases:

  • Integrations (backend/src/serverless/integrations): handles data ingestion from different sources.
  • Microservices Node.js (backend/src/serverless/microservices/nodejs): scheduled services written in Node.js.
  • Microservices Python (backend/src/serverless/microservices/python/serverless): data-analysis-related services written in Python.
  • DB Operations (backend/src/serverless/dbOperations): Python can only read from the database, not write. When it needs to perform writes it calls this service.

Did this page help you?