Build a durable job pipeline
An online shop takes orders faster than it can process them. You'll build the pipeline behind it: jobs that are never lost, workers that share the load, retries for the ones that crash, and exactly one charge per order. Jobs must survive a full memory and a restart, so this track needs a plan that writes to disk and never evicts.
What you'll build
In Node.js, Python, Go and Java, with a sandbox challenge in every level.
LEVEL 1
Append-only log
Streams with XADD and XRANGE
LEVEL 2
Many hands
Consumer groups with XREADGROUP
LEVEL 3
Nothing gets lost
Retries with XACK, XPENDING and XAUTOCLAIM
LEVEL 4
One at a time
Distributed locks with SET NX PX
LEVEL 5
Charge once
Idempotency keys
LEVEL 6
Later, please
Delayed jobs with a sorted set
LEVEL 7
Survive a restart
Persistence (AOF) and noeviction
LEVEL 8
Boss level
A resilient order pipeline
Warm up with the beginner track
Caching, counters, a live leaderboard, rate limiting and pub/sub: the backend of a tiny arcade game, one level at a time. Free on Starter.