Decision
Every command handler executes ONE transaction: aggregate state change + outbox event(s) +core.audit_log row (typed actor, entity, action, FULL old→new diff, correlation_id). Reads are projections with documented rebuild procedures. Event sourcing as system of record is REJECTED as a general pattern: replay/upcasting complexity is hostile to agent-generated code consistency, and the domains where ES pays (points ledger, metering, audit) are already append-only by design.
Consequences
- Complete change control with one uniform pattern agents can replicate. + Audit log doubles as Ley 21.719 “operational evidence”. − No time-travel reconstruction outside append-only domains (accepted).