Dataflow

Kon dato ta flue dor di e sistema: enforcement check, cache, outbox i audit.

Enforcement check

Request → middleware (RequirePurpose) → EnforcementCheckService. De service kijkt eerst in Redis cache (key: enf:plate:{normalized}). Bij cache miss: database (Core Registry, Tax, Insurance, Vehicle Inspections, Enforcement flags) → samenstellen response → schrijven cache → Audit. Response bevat vehicle, tax, insurance, inspection (APK/keuring), ownership en flags. Elke stap wordt gelogd met correlation_id en purposeCode.

Writes (mutaties)

Validate → database transactie → schrijven outbox-event → Audit (who, what, before/after) → commit. Een queue worker (Horizon) leest de outbox en publiceert naar Redis; listeners voeren cache-invalidatie en downstream acties uit. Zo blijft de cache consistent met de database en zijn alle wijzigingen traceerbaar.

Infrastructuur

PostgreSQL — Primaire database voor alle entiteiten, outbox en audit. Redis — Sessions, rate limit, lookup cache (plate→snapshot), queue. S3 — Documenten (hashed, ondertekend waar nodig). Outbox voor reliable event delivery; later kan Kafka worden toegevoegd voor schaal.