← Graph

Beyond the current state Time travel to the rescue!

talk 31 connections

Armin Pašalić's wroclove.rb 2018 talk introducing CQRS and event sourcing as practical tools for resilient systems. Starts from a 3-tier monolith and read/write disparity, motivating CQRS (Greg Young, 2009) as a service-level application of Bertrand Meyer's Command Query Separation (Object-Oriented Software Construction, 1988). Argues that current-state mutation forgets history and clashes with distributed transactions, and reframes state as a left-fold over an immutable, append-only event store with projectors that build read models. Demonstrates 'superpowers' gained: horizontal scale, time travel / temporal queries, precognition (build features as if always present), total self-reconstruction (recover from a dropped DB), and 'enhanced charisma' with regulators (the ledger story). Discusses real benefits (5-minute race-condition debugging via replay, simpler tests with no updates/deletes, trivial per-event backups via reactors) and trade-offs (mind shift, especially for senior engineers; difficulty hiring; eventual consistency, especially with external systems). Shares cheats: projectors and reactors must be idempotent; events need an aggregate-scoped sequence number alongside the global one (use a store with constraints, e.g. Postgres); reuse command-model aggregates to synthesize the response when legacy clients expect immediate replies; carry a command UUID into event metadata for deduplication; use sagas to reconcile with non-idempotent external systems (timeout, recheck, retry, escalate). Closes with Q&A on whether to persist commands (Pašalić logs them; Nathan sources them — depends on business relevance) and on how to store huge event volumes (snapshot at business-relevant points, archive to e.g. S3 or disk; advertising domains may compact after campaigns end since post-campaign click data is irrelevant).

type
talk
talk Beyond the current state Time travel to the rescue!
about
CQRS concept
Core architectural concept introduced and motivated in the talk.
talk Beyond the current state Time travel to the rescue!
about
Event Sourcing concept
Core architectural concept introduced and motivated in the talk.
talk Beyond the current state Time travel to the rescue!
about
Presented as the original Bertrand Meyer principle that CQRS scales to service level.
talk Beyond the current state Time travel to the rescue!
about
Discussed as a reality of distributed systems that engineers must embrace.
talk Beyond the current state Time travel to the rescue!
about
Used as the empirical motivation for separating command and query paths.
talk Beyond the current state Time travel to the rescue!
about
Current State concept
Critiqued as forgetful and ill-suited to distributed transactions.
talk Beyond the current state Time travel to the rescue!
about
Event Store concept
Described as the append-only persistence at the heart of event sourcing.
talk Beyond the current state Time travel to the rescue!
about
Projector concept
Explained as the component projecting events into read-model state.
talk Beyond the current state Time travel to the rescue!
about
Reactor concept
Introduced as event-driven components reconciling with external systems.
talk Beyond the current state Time travel to the rescue!
about
Saga Pattern concept
Recommended for handling reactor synchronization errors with non-idempotent external systems.
talk Beyond the current state Time travel to the rescue!
about
Snapshotting concept
Mentioned as an optimization for high-volume event streams.
talk Beyond the current state Time travel to the rescue!
about
Shared as a key cheat for keeping multi-writer event streams consistent.
talk Beyond the current state Time travel to the rescue!
about
Shared as a cheat for deduplicating events derived from commands.
talk Beyond the current state Time travel to the rescue!
about
Stated as a near-mandatory requirement for event-sourced systems.
asked_at
Beyond the current state Time travel to the rescue! talk
Asked during the talk's Q&A.
asked_at
Beyond the current state Time travel to the rescue! talk
Asked during the talk's Q&A.
authored
Beyond the current state Time travel to the rescue! talk
Pašalić is the speaker delivering the talk.
from_talk
Beyond the current state Time travel to the rescue! talk
First superpower introduced in the talk.
from_talk
Beyond the current state Time travel to the rescue! talk
Headline superpower of the talk.
from_talk
Beyond the current state Time travel to the rescue! talk
Superpower described as building features as if imagined on day one.
from_talk
Beyond the current state Time travel to the rescue! talk
Superpower illustrated by the dropped-production-DB story.
from_talk
Beyond the current state Time travel to the rescue! talk
Final 'superpower' aimed at regulated industries.
from_talk
Beyond the current state Time travel to the rescue! talk
Real-world benefit shared from Pašalić's experience.
from_talk
Beyond the current state Time travel to the rescue! talk
Benefit highlighted alongside other event-sourcing wins.
from_talk
Beyond the current state Time travel to the rescue! talk
Benefit shared as a near-trivial backup strategy.
from_talk
Beyond the current state Time travel to the rescue! talk
Discussed as one of the most significant trade-offs.
from_talk
Beyond the current state Time travel to the rescue! talk
Discussed as a hiring/training challenge that makes event sourcing risky for early-stage startups.
from_talk
Beyond the current state Time travel to the rescue! talk
Identified as a trade-off, especially with legacy and external systems.
from_talk
Beyond the current state Time travel to the rescue! talk
Lesson learned from a system that used event sourcing without CQRS.
from_talk
Beyond the current state Time travel to the rescue! talk
Cheat shared for legacy clients that expect synchronous responses.
talk Beyond the current state Time travel to the rescue!
presented_at
Talk delivered at wroclove.rb 2018.

Provenance

Created
2026-04-17 16:17 seed
Read by
15 extractions