S-06 · Event Subscriber + Read Projection (minimal) #7

Closed
opened 2026-06-03 09:52:57 +00:00 by eho · 0 comments
Owner

Outcome: An NRC webhook consumer that, on zaak.gecreeerd, writes a row to a register_projection table with id, bsn, naam_placeholder, status. Idempotent. Rebuildable.

Acceptance:

  • BDD scenario: "Given a zaak is created in OpenZaak, when the NRC event is delivered, then the projection contains a row with status INGEDIEND."
  • Replaying the same event twice does not create duplicates.
  • A projection rebuild admin command repopulates from OpenZaak.

Touches: services/event-subscriber/, services/projection-api/, tests.

Out of scope: decision events, multiple projections, public-safe field filtering (will tighten in S-09).

Definition of Done

  • A linked Gitea issue exists (this one).
  • Failing test written and committed first.
  • Implementation makes the test pass.
  • Refactor commit follows if structure improved.
  • Conventional Commit messages referencing this issue (refs #NN).
  • All Gitea Actions CI jobs green: lint, unit, integration, mutation (ratchet), e2e, container build + push, compose-up smoke test.
  • docker compose up from a fresh clone reaches green health checks within 3 minutes.
  • Docs touched if behaviour, contracts, or operations changed.
  • ADR added in docs/architecture/ if a non-obvious decision was made.
  • Demo note appended to docs/demo-script.md if the slice is user-visible.
  • This issue closed by the merging PR (closes #NN).
**Outcome:** An NRC webhook consumer that, on `zaak.gecreeerd`, writes a row to a `register_projection` table with `id`, `bsn`, `naam_placeholder`, `status`. Idempotent. Rebuildable. **Acceptance:** - BDD scenario: "Given a zaak is created in OpenZaak, when the NRC event is delivered, then the projection contains a row with status INGEDIEND." - Replaying the same event twice does not create duplicates. - A `projection rebuild` admin command repopulates from OpenZaak. **Touches:** `services/event-subscriber/`, `services/projection-api/`, tests. **Out of scope:** decision events, multiple projections, public-safe field filtering (will tighten in S-09). ## Definition of Done - [ ] A linked Gitea issue exists (this one). - [ ] Failing test written and committed first. - [ ] Implementation makes the test pass. - [ ] Refactor commit follows if structure improved. - [ ] Conventional Commit messages referencing this issue (`refs #NN`). - [ ] All Gitea Actions CI jobs green: lint, unit, integration, mutation (ratchet), e2e, container build + push, compose-up smoke test. - [ ] `docker compose up` from a fresh clone reaches green health checks within 3 minutes. - [ ] Docs touched if behaviour, contracts, or operations changed. - [ ] ADR added in `docs/architecture/` if a non-obvious decision was made. - [ ] Demo note appended to `docs/demo-script.md` if the slice is user-visible. - [ ] This issue closed by the merging PR (`closes #NN`).
eho added this to the Iteration 1 — Walking Skeleton milestone 2026-06-03 09:52:57 +00:00
eho added the area:event-subscriberarea:projectiontype:slice labels 2026-06-03 09:52:57 +00:00
eho was assigned by not 2026-06-29 10:51:00 +00:00
not closed this issue 2026-06-30 13:57:00 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eho/register-referentie#7