Skip to content

Event‑Driven Design

Otso treats every change as an immutable event. This makes history auditable and projections easy to rebuild.

  • Simplifies imports from unreliable APIs.
  • Enables replay and migration to new projections.
  • Encourages small, composable plugins.
  • Event logs grow forever → use snapshots or pruning for old events.
  • Higher initial complexity → start with high level helpers like createEvent.
  1. Capture the smallest meaningful fact as an event.
  2. Keep events immutable; derive views elsewhere.
  3. Name projections after the query they serve (e.g., latest_notes).