I build MVPs, SaaS, Mobile Apps & AI Integrations for founders. I write about shipping AI software that survives production. Top Rated Upwork · Level 2 Fiverr
Beyond the Demo #7
A user hits Checkout. To show shipping options, your backend calls a courier's rate API. It usually answers in 300ms. Today it takes 30 seconds.
Now checkout hangs for 30 seconds, and every checkout is holding a worker open waiting. The whole site slows down behind one slow dependency you don't even control.
A longer timeout feels like the fix. It's backwards. The longer you wait, the more requests pile up behind the slow call.
Three things fix it: a tight timeout so a slow call fails fast and frees the worker, a fallback like a flat shipping estimate so checkout still loads, and a circuit breaker (see image) that stops calling a dead service for a minute and serves the fallback instantly.
The shift for anything over the network: every external call can hang, not just fail. Design for slow, not only for down. Slow is what quietly takes the rest of your system with it.
Infinite feed bug:
User is reading page 2.
New posts arrive at the top.
They tap load more.
Now they see duplicate posts…
and miss one post completely.
Why?
Because offset pagination says:
“give me posts 20–40”
But the list moved.
New posts shifted everything.
The fix:
Use cursor pagination.
Instead of asking for a position, ask:
“give me posts after this exact post.”
Cursor should be stable, ordered, and unique.
created_at alone is not enough.
Use something like:
created_at + id
That’s how you avoid duplicate/missing posts in feeds.