LabsPartly open
Build it, break it, see the result
Reading tells you how a system should behave. A lab lets you find out. Pick a kind and a topic.
Design a short-link service (a URL shortener)
Build a short-link service from parts, press Run, and see whether it shortens, redirects and counts clicks, and whether it keeps doing so when a server, the cache or the click worker dies.System Design challenges · 11 checksOpen labDesign a home feed (a news feed)
Build a home-feed service from parts, press Run, and see whether it saves posts, opens feeds and delivers every new post to the followers, and whether it keeps doing so when a server, the feed cache or the fan-out worker dies.System Design challenges · 11 checksOpen labDesign a chat service (messages, online dots and alerts)
Build the back end of a chat app from parts, press Run, and see whether it stores messages, shows who is online and sends an alert to a closed app, and whether it keeps doing so when a connection server, the cache or the alert worker dies.System Design challenges · 11 checksOpen labDesign a product search box (search and typeahead)
Build a marketplace search box from parts, press Run, and see whether it returns products, serves suggestions and gets a seller's change into the index, and whether it keeps doing so when an app server, a search node or the indexing worker dies.System Design challenges · 12 checksOpen labDesign a ride service that finds nearby drivers (ride matching)
Build Safar's ride service from parts, press Run, and see whether it stores where drivers are, finds the ones near a rider, saves trips, and keeps going when an app server, a node of the location map or the trip worker dies.System Design challenges · 11 checksOpen labDesign a ticket drop (a flash sale)
Build the system behind a ticket drop from parts, press Run, and see whether it can hold seats, show which seats are free and confirm payments when 8,000 requests a second hit it at ten o'clock, and whether it keeps going when an app server, the seat-map cache or the payment worker dies.System Design challenges · 11 checksOpen labDesign a web page collector (a web crawler)
Build DalilBot from parts, press Run, and see whether it fetches pages, saves them and sends the links it finds back as new work, and whether it keeps going when a fetcher, the seen-URL memory or the page parsers stop.System Design challenges · 11 checksOpen labDesign a video platform (video streaming at scale)
Build a video platform from parts, press Run, and see whether videos play and uploads become playable, and whether the service keeps going when a CDN network, an app server or the transcoding workers stop.System Design challenges · 9 checksOpen lab
How a visual lab works
Build
Add parts from the list, link them and set their size. Switch between plain names and real AWS names at any time.Choose what to break
Open a part and press Break it. That only arms the failure. Nothing changes until you run.Press Run
The design plays through every scenario: normal traffic, the peak, and each failure.Read the checks
Every test case passes or fails on the board, with the number it measured and why. Fix one thing and run again.