All articles

Architecture Decisions You Will Not Regret

Every system carries the weight of its early choices. The trick is knowing which decisions are expensive to reverse and which ones you are free to get wrong.

Devin Park8 min read
Architecture Decisions You Will Not Regret

Software architecture is the art of deciding what to decide now and what to defer. Get that wrong in either direction and you pay for it: decide too much too early and you are locked into guesses, decide too little and you drown in churn.

The most useful question to ask of any decision is how expensive it is to reverse. Choosing a database is hard to undo. Choosing how a single screen lays out its data is trivial. Spend your deliberation budget on the one-way doors and walk briskly through the two-way ones.

Boundaries are where complexity goes to hide. The interfaces between modules, services, and teams are far more important than the code inside them. A clean boundary lets you rewrite everything behind it without anyone noticing. A leaky one spreads every internal detail across the whole system until nothing can change in isolation.

Resist the pull of premature abstraction. The wrong abstraction is more costly than duplication, because it couples things that only looked similar. Wait until you have seen a pattern three times before you name it. The third example tells you what is essential and what was coincidence.

Finally, write your decisions down. A short record of what you chose and why is worth more than any diagram. Six months later, when someone asks why the system works this way, the answer should not live only in one person memory.