Implement event log and job queue with outbox semantics #10

Closed
opened 2026-07-19 23:26:42 +02:00 by thecrealm · 2 comments
Owner

Acceptance: §3.4 (transactional outbox, at-least-once, idempotent handlers, retry/backoff, dead-job surfacing), §5.6 (per-entity ordering, rebuildability). Tests reference CR-9.

Acceptance: §3.4 (transactional outbox, at-least-once, idempotent handlers, retry/backoff, dead-job surfacing), §5.6 (per-entity ordering, rebuildability). Tests reference CR-9.
Author
Owner

Note from #3: the §7.4 retention purge currently runs as an in-process scheduler (RetentionPurger). When the persistent job queue lands here, move the purge onto it (recurring job, at-least-once, idempotent).

Note from #3: the §7.4 retention purge currently runs as an in-process scheduler (RetentionPurger). When the persistent job queue lands here, move the purge onto it (recurring job, at-least-once, idempotent).
thecrealm added
now
and removed
next
labels 2026-07-20 19:08:54 +02:00
Author
Owner

Live on prod (2dfcaa9): §3.4 event log and job queue operational. Events append inside the applying transaction (no standalone path — §5.2 atomicity structural, verified by a rejected-apply test), jobs claim via FOR UPDATE SKIP LOCKED and execute in the claiming transaction (at-least-once), exponential backoff, dead after max attempts with /admin/jobs surfacing + one-click retry, /admin/events inspection. §5.6/CR-9 consumer framework (durable per-consumer cursors, in-order idempotent dispatch) tested and ready — first real consumers wire in with M3. §7.4 purge migrated onto the queue as a self-rescheduling job (closes the earlier note). Worker + pending purge job verified live on the host. 7 new tests, 71 total green. Seams in D21.

Live on prod (2dfcaa9): §3.4 event log and job queue operational. Events append inside the applying transaction (no standalone path — §5.2 atomicity structural, verified by a rejected-apply test), jobs claim via FOR UPDATE SKIP LOCKED and execute in the claiming transaction (at-least-once), exponential backoff, dead after max attempts with /admin/jobs surfacing + one-click retry, /admin/events inspection. §5.6/CR-9 consumer framework (durable per-consumer cursors, in-order idempotent dispatch) tested and ready — first real consumers wire in with M3. §7.4 purge migrated onto the queue as a self-rescheduling job (closes the earlier note). Worker + pending purge job verified live on the host. 7 new tests, 71 total green. Seams in D21.
thecrealm 2026-07-20 19:24:17 +02:00
  • closed this issue
  • removed the
    now
    label
Sign in to join this conversation.
No labels
M0
M1
M2
M3
M4
M5
blocked
next
now
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thecrealm/mokuroku#10
No description provided.