Skip to main content

Architecture Overview

At a high level, Monoid consists of a React UI, a Go webapp server, a Temporal service. The Temporal service manages jobs to run actions on data silos; for more information about how Monoid interfaces with the data silo connectors, see documentation on the Monoid Protocol.

Technical Stack

Monoid Core Backend

  • Go 1.18.8
  • API: GraphQL
  • Databases: PostgreSQL
  • Orchestration: Temporal

The Monoid core backend can be found in monoid-api.

The monoid-api/requests package handles user data deletion/export request automation. The open-source PII scanner can be found in monoid-api/scanner; its design was inspired by that of Andrew Kane's open-source PII scanner here.

The GraphQL API schema is in monoid-api/schema. DB models can be found in monoid-api/models, while GraphQL API resolver functions can be found in monoid-api/resolver.

Connectors

Connectors can be written in any language. Connectors written by the Monoid team are generally written in Python 3.7.6.

Connectors can be found in monoid-integrations, while tools to create connectors can be found in monoid-py.

Frontend

  • Typescript
  • Web Framework: React

The UI can be found in monoid-ui.

Additional Tools

  • Containerization: Docker