Bundled Events
Multiple atomic decisions compressed into one schema-shaped blob
Decisions are atoms — each commitment is a distinct fact at the finest grain at which it occurred.
One event type carries everything downstream consumers might need. Order placed, payment captured, inventory reserved, fraud checked, shipping label generated — all in OrderCompleted. The schema felt efficient. Accountability, replay, and schema evolution became impossible because several decisions were fused into one designed artifact.
In software systems
Bundling is the designed-event anti-pattern from schema evolution: events shaped around consumer convenience rather than captured facts. PatientAdmitted contains diagnosis codes, bed assignment, insurance verification, and consent flags — each made by different authorities at different moments, sometimes minutes apart. Replaying the stream cannot reconstruct sequencing. Partial failure is ambiguous: which sub-decision failed?
Downstream teams request field additions; the bundle grows. Version migrations require coordinated deployment across twelve services. Forensic analysis after an incident cannot determine whether insurance was verified before treatment began — the timestamp is one. Atomic decisions buried inside composite payloads cannot be superseded individually. A corrected bed assignment implies re-emitting an entire admission event or mutating a projection — both violate the atom discipline.
In human organisations
Organisational bundling mirrors software bundling. “The steering committee approved the initiative” collapses budget approval, scope commitment, resource allocation, and risk acceptance into one meeting minute line. Each was a separable decision with different authorities; the minute records a bundle.
Hiring “approved” may mean headcount, compensation band, start date, and role definition — decided in hallway conversations across a week, recorded as one HR system status change. Post-hoc review cannot identify which commitment was premature. Bundling serves narrative simplicity and hides the finite process patterns: order, verify, reserve, commit — each deserving its own recorded moment.
In socio-technical systems
Loan origination bundles illustrate socio-technical fusion. A single LoanApproved event in the LOS carries credit decision, collateral assessment, regulatory disclosure acknowledgment, and rate lock — some automated, some human, some legally distinct commitments with different appeal rights. When a borrower disputes the rate, the record cannot isolate when the rate was committed versus when creditworthiness was decided.
Compliance audits ask for evidence of disclosure timing; the bundle provides one timestamp. Software was designed for reporting convenience; legal reality requires atomic commitments; organisational workflow merged sign-offs for speed. The three layers reinforced bundling until disaggregation requires expensive re-architecture and cultural retraining simultaneously.
Structural causes
Diffuse write authority
Bundling often arises when no single writer owns the full transaction — each team adds fields to a shared mega-event so everyone can “write their piece” without coordinating separate L0 atoms. The schema becomes a coordination surface because domain boundaries were never drawn.
Decisions are atoms (Article 3): each commitment deserves its own event with its own authority and timestamp. Document before apply at the schema level means designing events around captured facts, not consumer convenience. Decomposing bundles is a structural move toward single writer principle ownership per sub-decision.
CRUD as domain language
One OrderUpdated or CustomerCreated type invites every new business distinction into the same blob — fields accumulate, consumers branch on payload shape, and several atomic decisions fuse into one schema-shaped event. CRUD-ism bundles by default because the vocabulary has no room for the next real-world verb except another column or reason enum.