## What & why Brings the engineer-facing FDS documentation next to the code it describes. Imported from `projects/open-register-fd/` in `Respellion/innovation-lab` and translated to Dutch: **six ADRs**, the ADR index and template, the **L3 component view**, and the **slice-1 proposal**. The architecture blueprint, the FDS gap analysis and the two privacy views stay in the lab repo — the OKRs cite them and they feed tender responses. Each side names the split in a "Wat ligt waar" table, so nothing is documented twice. Closes #159 ### Why `docs/architecture/fds/` and not `docs/architecture/` This repo's own ADR series now runs `adr-0001-loose-coupling` … `adr-0010-bff-oidc`. The imported set is numbered 0001–0006, so a flat import would collide across the whole imported range. The subfolder preserves the imported numbering, and with it roughly thirty `ADR-000N` cross-references inside the imported text that would otherwise all need rewriting. In the MkDocs sidebar the imported six appear as **FDS ADR-000N** so they are not confused with this repo's series. `docs/architecture/fds/README.md` explains the two series. ### Mermaid support was missing `pymdownx.superfences` had no `custom_fences`, so the imported diagrams would have published to Gitea Pages as raw code blocks. This PR adds the mermaid custom fence, the nav group, and one link under *Where to go* in the docs index. ## Definition of Done - [x] Linked Gitea issue (above). - [ ] Failing test committed before the implementation. — n/a, documentation only. - [ ] Implementation makes the test pass. — n/a, documentation only. - [x] Conventional Commits referencing the issue (`refs #159`). - [x] Rebased on current `main`; no conflicts. - [ ] CI green — n/a for content; the docs verification is below. - [ ] `docker compose up` reaches green health checks. — n/a, no runtime change. - [x] Docs updated if behaviour, contracts, or operations changed. - [x] ADR added in `docs/architecture/` if a non-obvious decision was made. — six imported, plus the numbering decision recorded in the folder README. - [ ] Demo note in `docs/demo-script.md`. — n/a, nothing user-visible. ## Verification run - `mkdocs build` — clean. No missing-nav warning for any `architecture/fds/` entry. The two remaining warnings are pre-existing on `main` and untouched here: the set of pages absent from `nav`, and a broken link in `runbooks/ci.md` to `services/acl/stryker-config.json`. - Mermaid renders as a diagram, not a code block: `site/architecture/fds/c4-component-view/index.html` contains `class="mermaid"`. - All relative markdown links in the repo resolve. ## Notes for reviewers - **Language.** The imported documents are Dutch; this repo's own documents remain English. Deliberate, not an oversight — the lab repo standardised on Dutch and these pages moved with it. Translating the rest is a separate decision. - **Ownership.** This repo sits in the `eho/` namespace while it now holds the canonical FDS architecture decisions that tender answers point at. Worth deciding whether it should move to `Respellion/`. - **Scope drift, not fixed here.** The imported text is faithful to its source, so the slice-1 proposal and the ADRs assume NHR/KVK for slice 1, while the lab-side blueprint still uses BAG as its example register. The lab-side documents carry a banner about this; Blueprint v2 (slice 5) is where the diagrams get corrected. - **Companion PR:** `Respellion/innovation-lab` #34 holds the lab-side half of this split.Reviewed-on: #160
FDS-architectuur — Open Register
Deze map bevat de architectuurbesluiten en de engineer-documentatie voor de FDS-kant van deze referentie-applicatie: deelnemen aan het Federatief Datastelsel als afnemer.
De strategische inzet, de slices en de portfoliostatus staan in het Innovation Lab-repo,
Respellion/innovation-lab, onder projects/open-register-fd/. Daar staan ook de
architectuurblauwdruk, de FDS gap-analyse en de privacy-views.
Documenten
| Document | Waarvoor |
|---|---|
c4-component-view.md |
Componentview op niveau 3: ports en adapters, en welke views nog waarde toevoegen |
slice-1-proposal.md |
Het bouwbare eerste increment; plak dit in een poc-voorstel-issue |
adr/ |
De geaccepteerde architectuurbesluiten, ADR-0001 tot en met ADR-0006. Zie de tabel hieronder. |
Architecture Decision Records
Een ADR legt een besluit vast dat vaststaat, met de context en de gevolgen, zodat het niet stil
opnieuw wordt uitgevochten. Statuswaarden: proposed → accepted → (vervangen door ADR-NNNN |
deprecated).
Een geaccepteerde ADR wijzigen betekent een nieuwe ADR schrijven die de oude vervangt. Wij herschrijven de historie nooit.
ADRs liggen naast governance. Acceptatie volgt de asynchrone bezwaarronde uit
Respellion/innovation-lab, operating-model/operating-model.md, sectie Besluitvorming.
| ADR | Besluit | Status |
|---|---|---|
| 0001 | Anti-Corruption Layer op elke registergrens | accepted |
| 0002 | FSC voor connectiviteit tussen organisaties, geen ruwe REST | accepted |
| 0003 | Policy-based access control via OPA, FTV-klaar | accepted |
| 0004 | Begrensde cache; registers blijven systeem van registratie | accepted |
| 0005 | Verwerkingenlog via event-emissie, in lijn met LDV | accepted |
| 0006 | Modulegrens en hergebruikstrategie: in-process → .NET-module → OpenMetadata-feed → gateway op verzoek | accepted |
Nummering
Deze reeks staat los van de ADR-reeks over de referentie-applicatie zelf, die in
../ loopt van adr-0001-loose-coupling tot en met
adr-0010-bff-oidc. Vandaar de eigen map fds/: beide reeksen beginnen bij 0001, en de nummers
zouden anders over de volle breedte botsen.
In de MkDocs-navigatie staan deze zes daarom als FDS ADR-000N, zodat de zijbalk ze niet met de reeks van de applicatie verwart.
Nieuwe FDS-ADR: kopieer adr/template.md, neem het volgende nummer, en open een
pull request.