Skip to content

Design: Architecture

Status Draft
Author Stuart Meeks
Last updated 2026-10-10
Phase 1

Context

The overall shape of the system: components, boundaries, and how they talk.

Known constraints (to be expanded)

  • Modular monolith: one codebase and one database; modules (accounts, catalog, sales, production, billing, notifications, system) with boundaries enforced by architecture tests; deployables are the UI, API, background worker and identity service (ADR 0026).
  • Multi-tenant SaaS: shared database and schema, tenant isolation by PostgreSQL row-level security and EF Core query filters; also self-hostable as a single tenant (ADR 0004).
  • Accounting behind a plugin interface (ADR 0005).
  • One API for every client and actor, with actor-scoped record and field visibility (ADR 0010).
  • Back end: .NET LTS and ASP.NET Core (ADR 0007); PostgreSQL via EF Core (ADR 0008).
  • Front end: React and TypeScript single-page app (ADR 0009).
  • UI and API deployed separately, served from one origin per business by an edge router (ADR 0015).

Design

To do.

Failure modes

To do.

Alternatives considered

To do.

Open questions

To do.