Dr Jekyll and Mr Hyde, Embracing the Dual Nature of State
summary
Luno pairs mutable SQL rows with an immutable event table and enforces lifecycle transitions with a state‑machine layer so every update writes exactly one event inside a DB transaction. Engineers ship a small Go stack: shift + generator for SQL boilerplate, reflux to expose event tables as gRPC peer‑to‑peer streams, and fate to inject probabilistic failures in staging. Consumers are written idempotently; at least‑once delivery is accepted and duplicates are harmless. This setup scales across millions of customers and hundreds of services and surfaces bugs in staging so production stays reliable.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 1:40One size doesnt fit all
- 3:12The sender service
- 4:57Recovery
- 5:32Dual Nature of State
- 6:12Outline
- 7:23Mutable State
- 8:23Sending State
- 9:35State Machines
- 10:36Resetting State
- 12:02Shift
- 14:14Events
- 18:23Streams
- 21:20reflux
- 28:24fate
- 30:43recap
related talks
46mState or events? Which shall I keep?
49mReactive microsystems
51mImmutable data stores and CORS for safety, flexibility and profit
58mEliminating Hidden Dangers to Your Applications Patterns for Reliable Systems
40mUncoupling Systems
40mAdd Simplicity to Complex Systems
21mLive-coding demo
54mThe Dark Side Of Events
