advanced

Event sourcing

Храните state changes как append-only event log, когда audit, replay, temporal queries и explicit evolution оправдывают modeling cost.

Event sourcing хранит state как append-only последовательность domain events. Текущее state — replay или snapshotting. Плюсы: audit trail, temporal queries, естественная интеграция теми же events. Минусы: schema evolution, storage и сложность mental model.

Компромисс: идеальная история и replay против operational burden и learning curve.

На интервью: event sourcing vs CRUD плюс outbox; snapshots и upcasting старых events.

Типовые ошибки: events как integration DTO без domain meaning; unbounded store без compaction; replay без versioning strategy.

Чеклист:

  • Events как domain facts, versioned.
  • Snapshots для long aggregates.
  • Upcasters для schema changes.
  • Разделяйте internal и public integration events.