SystemDesignLaws

SystemDesignLaws

Home
Archive
Leaderboard
About
Real-time Updates
- Real-time systems need two hops: server to client (WebSockets, SSE, long polling) and source to server (Pub/Su...
Mar 16 • Jimmy Malhan
Multi-step Processes
- Multi-step processes fail halfway: payment charged but inventory not reserved. Use workflow engines like Tempo...
Mar 16 • Jimmy Malhan
Dealing with Contention
- Fix race conditions with atomicity, locks, or optimistic concurrency. Scale to distributed coordination when m...
Mar 16 • Jimmy Malhan
Caching for System Design Interviews
- Caching cuts latency 50x and reduces DB load by 95%+. Cache-aside with Redis is the default. Layer CDN for glo...
Mar 16 • Jimmy Malhan
Managing Long-Running Tasks
- When a task takes more than a few seconds, do not make the client wait. Accept the request immediately (return...
Mar 16 • Jimmy Malhan
Handling Large Blobs
- Files should never pass through your application server. Use presigned URLs for direct upload to object storag...
Mar 16 • Jimmy Malhan
Scaling Writes
- Scale writes in four tiers: vertical scaling with write-optimized databases, sharding to spread load, queues a...
Mar 16 • Jimmy Malhan
Scaling Reads
- Reads dominate writes 100:1. Scale in three tiers: optimize the database (indexing, denormalization), scale ho...
Mar 16 • Jimmy Malhan
© 2026 Jimmy Malhan · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture