Architecture overview
This page is a high-level orientation. Deeper dives live alongside it under the Architecture section as they are written.
Layers
Section titled “Layers”rettX is intentionally small for a healthcare system. There are three runtime layers and two supporting libraries:
flowchart TD
Caregivers(["👤 Caregivers"]):::actor
Admins(["🏥 Admins / clinicians"]):::actor
rettxweb["rettxweb<br/><small>Angular PWA · app.rettx.eu</small>"]:::surface
rettxadmin["rettxadmin<br/><small>admin web app</small>"]:::surface
rettxapi["rettxapi<br/><small>Python service · consent · access control</small>"]:::backend
rettxmutation[["rettxmutation<br/><small>PyPI · HGVS parsing</small>"]]:::lib
rettxid[["rettxid<br/><small>PyPI · pseudonymous IDs</small>"]]:::lib
Caregivers --> rettxweb
Admins --> rettxadmin
rettxweb --> rettxapi
rettxadmin --> rettxapi
rettxapi --> rettxmutation
rettxapi --> rettxid
classDef actor fill:#f2f2f2,stroke:#8b4ea6,stroke-width:1.5px,color:#333
classDef surface fill:#fdf0f7,stroke:#ed3385,stroke-width:1.5px,color:#333
classDef backend fill:#f3e8f7,stroke:#8b4ea6,stroke-width:2px,color:#333
classDef lib fill:#eaeaff,stroke:#4e4bbf,stroke-width:1.5px,color:#333
Trust boundaries
Section titled “Trust boundaries”- The caregiver app and the admin app never see another
patient’s data. All authorisation is enforced server-side in
rettxapi. rettxapiis the only component that touches identifiable data at rest. Pseudonymous identifiers come fromrettxid; mutation strings are normalised throughrettxmutation.- The docs site (this site) and the WordPress landing site at
rettx.euare static and have no access to patient data.
How changes flow
Section titled “How changes flow”For anything that crosses a trust boundary or affects more than one
component, we write a specification in
specs/
before any code is written. The spec must pass a constitution check
(see governance) before tasks are fanned
out to the relevant repositories.
What lives where
Section titled “What lives where”See the ecosystem map for which repository holds what, and which are public versus private.
More to come
Section titled “More to come”This section will grow as we publish ADRs and architecture deep dives. Watch the decisions section for newly-merged ADRs.