Prototypes are allowed to be clever and disposable. Systems are not. The difference shows up when something grows, someone new has to own it, or you need to debug it under pressure.
Tag: architecture
Defaults are useful until they become hidden policy. I usually prefer explicit configuration because it is easier to understand, easier to change, and much less surprising later.
Fancy cloud abstractions often look like they remove complexity, but a lot of the time they just move it somewhere harder to see. That matters when something breaks and you need to debug it or hand it over to someone else.
The best engineering decisions usually do not add more process or more code. They remove work, shorten paths, and make the remaining system easier to understand.
AWS diagrams love to look simple. The problem is that the operational reality behind them is usually doing a lot more work than the picture admits.
Serverless has real tradeoffs, but for small teams I still think it usually wins. The operational overhead stays low, the first version ships faster, and the mistakes are easier to afford early on.