Files
register-referentie/docs/architecture/fds/adr/0001-acl-at-every-register-boundary.md
T
ehoandClaude Opus 5 700399992a
CI / lint (pull_request) Successful in 1m26s
CI / build (pull_request) Successful in 1m13s
CI / unit (pull_request) Successful in 1m39s
CI / frontend (pull_request) Successful in 3m32s
CI / mutation (pull_request) Successful in 6m33s
CI / verify-stack (pull_request) Successful in 8m16s
docs(architecture): import the FDS architecture decisions (refs #159)
Bring the engineer-facing FDS documentation next to the code it
describes: ADR-0001 to ADR-0006, the ADR index and template, the L3
component view, and the slice-1 proposal. All translated to Dutch.
Source: projects/open-register-fd/ in Respellion/innovation-lab.

Land the set in docs/architecture/fds/ rather than docs/architecture/.
This repo already owns adr-0001-loose-coupling to adr-0004-bdd-framework,
so a flat import collides on every number. The subfolder keeps the
imported numbering, and with it about thirty ADR-000N cross-references
in the imported text.

Add the mermaid custom fence to pymdownx.superfences. Without it the
imported diagrams publish as raw code blocks, because the site has no
mermaid support today. Add the nav group and one link from the docs
index.

The blueprint, the FDS gap analysis and the privacy views stay in the lab
repo; the OKRs cite them and they feed tender responses.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 11:29:07 +02:00

1.9 KiB

ADR-0001: Anti-Corruption Layer op elke registergrens

  • Status: accepted
  • Datum: 2026-06-13
  • Deciders: Lab Circle (Build, Lead Link)
  • Vervangt / vervangen door:

Context

De applicatie bevraagt meerdere registers: BRP, NHR/KVK, en ZGW via OpenZaak. Hun vocabulaires en schema's verschillen van elkaar en van ons domein. Zij veranderen ook zelf mee met de FDS-standaarden.

Lekt registervocabulaire het domeinmodel in, dan werkt elke wijziging aan de registerzijde door in de bedrijfslogica. Het domein wordt dan een lappendeken van vreemde begrippen in plaats van ubiquitous language.

Besluit

Elk register is bereikbaar via een Anti-Corruption Layer: één adapter per register, die een port vervult die het domein definieert.

Adapters doen alleen vertalen en velden versmallen. Zij bevatten geen bedrijfslogica. Het domein spreekt Persoon en Organisatie, en nooit veldnamen uit BRP of NHR.

Gevolgen

Positief: verloop in registers en FDS-standaarden blijft bij de adapter. Het domein blijft stabiel en testbaar. Adapters zijn onafhankelijk vervangbaar, en dat is precies wat de FSC-wissel uit ADR-0002 goedkoop maakt. Het patroon generaliseert naar een herbruikbare ACL-template per register, een Foundations-kandidaat.

Negatief en kosten: één vertaalmap per register om te schrijven en te onderhouden, plus een extra indirectie die engineers moeten respecteren in plaats van omzeilen.

Vervolgwerk: extraheer de ACL-template zodra de tweede adapter bestaat (slice 3).

Overwogen alternatieven

  • Registers direct aanroepen uit de applicatieservices — afgewezen: dit koppelt bedrijfscode aan registerschema's en aan versies van FDS-standaarden.
  • Eén generieke registeradapter — afgewezen: registers verschillen genoeg dat een generieke abstractie zou gaan lekken of opzwellen. Adapters per register zijn duidelijker.