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, system— nomother. - 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 whendelivery_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.