> ## Documentation Index
> Fetch the complete documentation index at: https://internal.softcrum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ADR-017 — CQRS-Lite + Audit Log; Event Sourcing Rejected as Norm

> 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.

Status: Proposed (ratified by Daniel 2026-08-15) · Refs: DEC-C1, DEC-C2

## 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).
