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