Code the future, now
summary
Argues that replace nightly batch jobs with per-customer long-running sagas using NServiceBus (messages, timeouts, persisted saga state) so history is not queried but fold the future into state by scheduling decrement messages one week later. Shows tests that simulate timeouts and demonstrates RabbitMQ delayed delivery via a binary queue trick (28 delay-queues → ~268 million seconds ≈ 28 queues = 8.5 years). Claims single-row transactional updates remove race conditions; the approach is implemented, tested and runs at scale.
AI-written summary · about
chapters (12)
- 0:00Start
- 2:17The Arrow of Time
- 3:51Optimistic Concurrency
- 5:46What's Wrong with this Code
- 9:57Batch Job
- 14:12Strangler Pattern
- 23:16Message Classes
- 23:36Create a Saga
- 24:03Nested Class
- 27:26Request a Time Out
- 28:41Who Likes Async / Await
- 30:58Tdd Targets
related talks
55mCode the future, now
18mCode That Can't Fail
01h 29mMonolithic Delivery
40mEverything Will Flow
01h 03mPerformance loop—A practical guide to profiling and benchmarking
41mDesign (Failures) Case Study
24mArchitecting the Unconventional: A Case Study in Software Design
01h 25mBuilding microservices with event sourcing and CQRS
