On Simplicity
The best systems I’ve worked with had one thing in common: they were simple enough to fit in your head.
Not trivial — simple. There’s a difference. A hash map is simple. A distributed consensus protocol is not trivial, but a well-designed one can be simple to reason about.
The complexity trap
Complexity is seductive. It feels like progress. You add a cache layer, a message queue, a service mesh, and suddenly you have a system that takes a week to onboard someone into.
“Simplicity is prerequisite for reliability.” — Edsger Dijkstra
A checklist
Before adding a new component to your system, ask:
- Can I solve this with what I already have? Most of the time, yes.
- What’s the operational cost? Every new service is a new thing that can break at 3 AM.
- Will I understand this in 6 months? If not, simplify.
Simple doesn’t mean easy. It means deliberately choosing to do less, better.