> ## 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 descartado como norma

> Cada command handler ejecuta UNA transacción: cambio de estado del agregado, evento de outbox y fila en core.audit_log con actor tipado, entidad, acción, diff completo old→new y correlation_id.

Estado: Propuesto (ratificado por Daniel el 2026-08-15) · Refs: DEC-C1, DEC-C2

> Traducción. Autoritativo: [`../../adr/adr-017-cqrs-lite.md`](/adr/adr-017-cqrs-lite).

## Decisión

Todo command handler ejecuta UNA transacción: cambio de estado del agregado + evento(s) del outbox +
fila de `core.audit_log` (actor tipado, entidad, acción, diff COMPLETO old→new, `correlation_id`).
Las lecturas son proyecciones con procedimiento de reconstrucción documentado. El event sourcing
como sistema de registro se RECHAZA como patrón general: la complejidad de replay y upcasting es
hostil a la consistencia del código generado por agentes, y los dominios donde el ES paga (libro de
puntos, medición, auditoría) ya son append-only por diseño.

## Consecuencias

* Control de cambios completo con un patrón uniforme que los agentes pueden replicar. + El audit log
  sirve además como "evidencia operativa" para la Ley 21.719. − Sin reconstrucción por time-travel
  fuera de los dominios append-only (aceptado).
