KB-11AC

IU Core Worker Live — 06 dry_run=false readiness (updated)

3 min read Revision 1
dieu44iu-core-mvpevent-workerdry-run-falsereadinessv0.62026-05-21

IU Core Worker Live — 06 dry_run=false readiness (updated)

Updates the event-worker macro KB doc 08 after this macro.

Blockers — status after this macro

# Blocker Status
1 Delivery seam unbuilt (fn_iu_route_deliver RAISES) Open — but now has a concrete contract: delivery_seam.py (doc 03). The macro implements a DeliveryTarget + re-authors the SQL dispatcher.
2 Route CHECK iu_outbound_route_safe_chk forbids enabled+dry_run=false Open — must be relaxed/replaced under backup as an explicit DDL step. Probe P6 showed dropping it in-txn is clean and revertible.
3 No organic consumer evidence Openevent_outbox still has 0 iu rows. Worker dry-run behaviour is now fully proven (probe), but organic version_seq>1 evidence still requires a real cut.
4 Cursor safety-lag Open — keyset cursor can skip a row committed late with an earlier created_at. A delivery worker needs a high-water-mark / lag window.
5 Invocation mechanism Open — no daemon (forbidden). The worker is invocation-based; the macro must choose cron job / DOT phase, itself a persistent component needing approval.

Done — prerequisites cleared

  • Worker substrate (008/009/060) on production — prior macro.
  • Worker gate opened (route_worker_enabled='true') — this macro (090).
  • Worker dry-run behaviour proven — this macro (probe P1–P9): emit → claim → dry_run attempt → cursor + key idempotency → fail-closed delivery → dead-letter → replay → both gates. Zero durable rows.
  • Delivery seam contractdelivery_seam.py (doc 03).
  • Disable path proven — worker gate false (P1), master gate false (P8), rollback/090.

Mandatory gates for the dry_run=false macro

Fresh pg_dump -Fc; worker substrate + gate already live (done); organic iu_route_attempt dry_run rows observed from a real cut; delivery seam built

  • unit-tested + probed BEGIN…ROLLBACK; route CHECK relaxed under backup; disable path proven.

Expected evidence at PASS

Organic dry-run attempts → built DeliveryTarget → one controlled dry_run=false delivery to the real target → iu_route_attempt status='sent', delivered=true → dead-letter empty → idempotent re-run → disable proven.

Rollback / disable (unchanged)

Worker gate false (runtime/080 / rollback/090) — instant stop · route dry_run=true — back to log-only · re-add iu_outbound_route_safe_chk · rollback/009+008 only if the substrate must go (REFUSED while history exists).

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-worker-live-dryrun-structure-autocut-delivery-prep-open-goal/06-dry-run-false-readiness.md