Skip to content
Writing

Short read · September 9, 2026 · 1 min read

Design for failure, not perfection.

You can't design a perfect system that accounts for every possibility or handles every edge case.
Assuming everything will work as expected is a mistake. Failure is inevitable in any system.

A bad connection, a slow database, or an unavailable third-party dependency can badly affect your system if you don't handle it correctly. Design your system around what happens when things go wrong. Plan for retries, fallbacks, and recovery.

Otherwise, a small failure can quickly become a much bigger problem.
A resilient system isn't one that never fails. It's one that knows how to recover when it does.

What do you think?

One line is fine — no need to be polished. I read and reply to everything.

So I can reply. Nothing else.

Design for failure, not perfection. — Yasser Jaffer