How real companies do system design
One idea per company, from what their engineers published about it. Each page explains the idea, links to the original writing, and has an investigation to practise it.
- DubRedirects at the edgeAn open-source link platform: every click is a redirect that must be fast everywhere, and an analytics event that must never slow it down.Practise it in Design a URL Shortener
- MuxVideo that plays before it is processedA video API that starts playback seconds after upload by transcoding segments on demand instead of the whole file up front.Practise it in Design a Video Processing Pipeline
- CloudflareRate limiting at the edgeRate limits enforced in hundreds of data centres at once, where exact global counts would cost more than the attacks they stop.Practise it in Design an API Rate Limiter
- Twitter (X)Fan-out for home timelinesThe classic home timeline design: do the work when someone posts, so the far more frequent reads are cheap.Practise it in Design a News Feed (Twitter Timeline)
- SlackJob queues under backlogA job queue that failed because its backlog lived in memory, and the redesign that moved the backlog to disk.Practise it in Design a Distributed Job Queue
- UberPush instead of pollingMoving millions of phones from polling for updates to a push platform that resumes cleanly after a dropped connection.Practise it in Design a Notification System
- StripePayments that never charge twicePayment APIs where a retry after a timeout must never move money twice.Practise it in Design a Payment System
- Meta (Facebook)Caching in front of a databaseMemcached as a look-aside cache at very large scale, where the hard part is keeping it correct rather than fast.Practise it in Design a Distributed Cache (Memcache)
- DiscordStoring chat history foreverChat history that is kept forever and read at random, and the move to another database while it was running.Practise it in Design Discord's Message Storage
- FigmaReal-time multiplayer editingSeveral people editing one design at once, kept in sync by a single server per document.Practise it in Design a Collaborative Editor (Google Docs)
- NotionSharding Postgres without downtimeOne Postgres database split by workspace while the product stayed online, then split further two years later.Practise it in Shard a Live Database Without Downtime
- ConvexA database that pushes query resultsA reactive database: queries are functions, their results update live, and transactions behave as if they ran one at a time.Practise it in Design a Reactive Database (Live Queries)
- PostHogAnalytics on billions of eventsProduct analytics that outgrew Postgres: an event pipeline into a column store, and the copying that made person queries fast.Practise it in Design a Product Analytics System