System Design Drill Day 11: The Transactional Outbox PatternAlmost every Laravel checkout controller has the same two lines: save the order, then dispatch a job. It works nearly every time. If Redis hiccups between those two lines, the order is paid and the em1d ago · 7 min readblog.anishansari.com.np
System Design Drill Day 10: Circuit Breakers, Timeouts and DegradationThe payment gateway starts timing out. The HTTP client retries, the queue retries, and workers pile up waiting on calls that won't come back. Soon pages that have nothing to do with payments are slow 2D2d ago · 7 min readblog.anishansari.com.np
System Design Drill Day 9: Idempotency Keys for Payments and RetriesA customer taps "Pay" on a shaky mobile connection. The charge goes through on the server, the response never reaches the phone, and the app retries. Whether the customer is now charged twice depends 14CA4d ago · 7 min readblog.anishansari.com.np
System Design Drill Day 8: Distributed Locks with Redis and Fencing TokensOne unit of a hot SKU is left, and two customers press "Buy" at the same moment on two different app servers. Both see "1 in stock", both checkouts succeed, and one of them gets an apology email. A mu110MCZ5d ago · 10 min readblog.anishansari.com.np
System Design Drill Day 7: Rate Limiting APIs, Logins and OTPs with RedisSomeone finds your OTP endpoint and starts hammering it. Every call sends an SMS, and you pay for each one. Rate limiting fits into a half-hour interview and still touches algorithms, shared state and16d ago · 8 min readblog.anishansari.com.np