KB-2D27

SuperBundle — 08 Mother Event/Queue Hardening (Đ45)

4 min read Revision 1
event-queuedieu45event-type-registrymother-eventsexecutor-boundarydlqrefs-only2026-05-28

08 — Branch H: Event/Queue Hardening for Mother Factories (Đ45)

Goal: prepare Đ45 substrate for later 4 Mothers runtime. Result: ADVANCED — refs-only mother. seed prepared + schema captured; commit deferred (Đ45 draft + factories not born). No delivery, no execution.*

1. Live event substrate (captured)

event_type_registry (31 rows) columns: event_domain (NN) · event_type (NN) · event_stream (NN) · delivery_lane (NN) · default_severity · description (NN) · active (NN) · created_at (NN). No json-schema / compat_mode column (refs-only by design).

  • Domains present: iu, piece, staging, systemno mother.
  • Conventions observed: event_stream ∈ {update,...}; delivery_lane ∈ {delayed,immediate}; default_severity='info'.
  • Runtime gates off: piece_event_runtime.emit_enabled=false, queue.job_substrate.enabled=false, queue.dlq.replay_enabled=false, iu_core.delivery_enabled=false.

2. mother.* event types (PREPARED, refs-only — deferred)

INSERT INTO event_type_registry(event_domain,event_type,event_stream,delivery_lane,default_severity,description,active,created_at) VALUES
 ('mother','factory.registered','update','delayed','info','A Mother factory row was registered/activated',false,now()),
 ('mother','config.created','update','delayed','info','A Mother config envelope was created',false,now()),
 ('mother','output.created','update','delayed','info','A Mother produced an output object (workflow/task/template)',false,now()),
 ('mother','output.failed','update','immediate','warn','A Mother output production failed',false,now()),
 ('mother','proposal.created','update','delayed','info','A Mother emitted a governance proposal',false,now()),
 ('mother','proposal.approved','update','immediate','info','A Mother proposal was approved (human/council)',false,now()),
 ('mother','proposal.rejected','update','immediate','info','A Mother proposal was rejected',false,now());

Note active=false on all (registered but dormant). Rollback: DELETE FROM event_type_registry WHERE event_domain='mother';

3. event-vs-job distinction (Đ45)

  • Events = facts already happened (registered in event_type_registry, delivered via routes when delivery_enabled). mother.* above are events.
  • Jobs = work to be executed (queue.job_substrate, executor_class/retry_policy/idempotency_key/dlq_replay_request). The 4 Mothers' production is a job concern, not an event.
  • Executor boundary: Mother factories must emit events (facts) and enqueue jobs (intents) — they must NOT execute synchronously. Đ45 executor_class/retry_policy/idempotency_key registries are still ABSENT (paper) — required before any Mother runtime.

4. Why deferred (not committed)

  • Đ45 is still a DRAFT law (v0.6-dieu45-pg-native-queue-law-draft, council-review-pending, user-approval-required). Registering mother.* under a draft law is premature (forbidden: no law enactment).
  • The mother.* types presuppose the 4 factories exist (G4, doc 07) — not yet born.
  • Refs-only seed is safe and ready; commit it together with G4 activation under the enacted Đ45.

Advancement: mother.* event taxonomy designed to live conventions + insertable form proven on paper; blocked on Đ45 enactment + factory births. No delivery/execution touched.

Back to Knowledge Hub knowledge/dev/reports/architecture/gate-clearing-first-factory-dry-assembly-superbundle-2026-05-28/08-mother-event-queue-hardening.md