Multi-tenant platform

active running since 2026-03-29
project · automation

A clean reimplementation that takes the best of two earlier solutions. The new platform has a single core and serves each organization as a separate client (tenant).

AI assistanceThe project is built with the help of AI coding assistants. The design, the module boundaries and the reviews stay with a human; the code goes through automated tests and checks.

Architecture

  • Shared database, separated data: every record belongs to a tenant, and access to another tenant’s data is an exception guarded by automated checks.
  • Tenant by address: the organization is recognized by hostname, including its own look and content.
  • Features in packages: modules and capabilities are enabled per tenant.
  • Modular core: domain modules talk only through public interfaces, and external services (e-mail, SMS, sign-in, storage) sit behind adapters.

What had to be solved

  • tenant isolation even in background jobs, where there is no web request context;
  • permissions limited to a subset of the data and a layered policy engine;
  • personal data protection: masking and erasure under the GDPR, an audit trail of sensitive actions;
  • migration of existing data and versioning of code lists;
  • module boundary checks in CI, an extensive automated test suite, and health and readiness checks for operation.

Status

In the pre-production phase: internal testing and migration, with a planned gradual rollout.

← back to explore