One module's problem stays one module's problem
Because no module can read another's tables, a defect or a bad deployment in billing cannot corrupt clinical data. Blast radius is a design property, not a hope.
The shape
Microservices are a deployment option we keep available, not a starting position. Every boundary rule exists so any module could later be lifted into its own service without changing a line anywhere else.
Enforcement
Rules that live in documents decay. These live in the build pipeline, and a change that violates one does not merge.
A module may import itself, the contracts package, and the kernel. Anything else fails the build.
A repository referencing a table outside its own schema fails the build. No allow-list, no exceptions.
Domain logic may not import infrastructure, presentation, or any I/O library. Purity is checked, not requested.
The kernel may not depend on any module or contract. A "utility" naming a domain noun belongs in that domain.
Contracts carry no runtime dependencies; breaking changes to types or event schemas are caught on every pull request.
A module ships with its tasks, permissions, events, AI tools, flags and seven documents registered — or it does not ship.
Alongside these run the ordinary ones — strict types, both-ways migrations, coverage floors, contract tests, an authorization matrix, accessibility scans, performance budgets, dependency and secret scanning. The ladder only ever grows. Ask any vendor to show you theirs.
Why it matters to you
Architecture is only worth discussing if it changes what you experience. Here is the translation.
Because no module can read another's tables, a defect or a bad deployment in billing cannot corrupt clinical data. Blast radius is a design property, not a hope.
New modules install against published contracts. That is why we can claim you will not face another hospital-wide replacement — the architecture is what makes it true.
One physical database per hospital, self-hosted if you prefer, with an open FHIR R4 API and a permanent event history that belongs to you.
Next step
An executive demonstration takes forty-five minutes. We seed a hospital with synthetic data shaped like yours, put the digital workforce on duty, and answer the hard questions with the architecture open.
synthetic data · zero real patients
self-hosted or managed cloud
one database per hospital