Module 1
Make every accepted order publishable
Close the dual-write gap, then build a hot-table index that stays cheap as history grows.
- Atomic order + outbox commit
- Partial due-work index
Take the on-call seat for a commerce relay. Recover through the failure windows, scale competing workers, survive real process and broker failures, and finish with a measured flash-sale game day.
Advanced .NET · PostgreSQL · RabbitMQ · Disposable browser workspace · Pro workspace in private beta
One course, deeply finished
Start with one advanced course, built around eight connected incidents. Each lesson builds on the previous fixes and adds the next production invariant, so the final game day tests the system you actually built.
Module 1
Close the dual-write gap, then build a hot-table index that stays cheap as history grows.
Module 2
Fence publisher-confirm completion, split claims, reclaim dead workers, and face the acknowledgement gap.
Module 3
Separate event poison from dependency outage, then drain a 200-order flash sale.
Save the orders: the production outbox lab
1 lab · 8 lessons · 125 minutes · Advanced
The lesson loop
The full implementation stays visible for code reading. You change the handful of lines that carry the design decision, using copy or Insert at cursor, then explain and prove the result.
FOR UPDATE SKIP LOCKED
Interlocked.Exchange(
ref transportCircuitOpen, 1);
await ReleaseTransportFailureAsync(...); Run the failing scenario against real PostgreSQL and RabbitMQ.
Compare database truth, broker truth, query plans, leases, and acknowledgements.
Make one focused engineering decision using a ready-to-insert snippet.
Clear an executable invariant that rereads the real systems, not your source text.
Executable evidence
Rows, leases, fencing tokens, queue buckets, and real query plans.
Publisher confirms, durable queues, redelivery, and transactional consumer deduplication.
SIGKILL, competing relays, post-ack crashes, and bounded concurrency.
Lag, retry budgets, dead letters, retention, and a 200-order drain.
Explore the complete course experience while live Pro workspaces remain in private beta.
Practice in the playgroundA short note when fresh kata land, plus the C# and performance tricks behind the grading. No spam, unsubscribe anytime.