Deploy an Application
One real workload, walked through the learning loop one decision at a time. Every choice is recorded with its reason, the alternative you rejected and the trade-off you accepted — because that record, not the diagram, is what a design review actually reads.
You have an API — Node, Python or C++, it does not matter here — and a PostgreSQL database. It works on your machine. Roughly 200 requests per second at peak, a team of four, real customer data, and a European customer base. Decide how to run it in production. Each decision is recorded with its reason, its alternative and its trade-off.
Application Requirement→Infrastructure Requirement→Compute→Network→Storage→Identity→Deployment→Scaling→Reliability→Observability→Security→Cost→Trade-offs
Decision 1
Where does compute run?
The API is a long-running HTTP service with ordinary Linux needs. Where should it run?
Already decided · Nothing is decided yet. Four engineers, none of whom currently operates infrastructure full time.
Lesson behind this decision
1 / 10
Decision log
Decision → reason → alternative → trade-off. The alternative is part of the record; a decision without one is a guess that happened to work.
Decisions made
0 / 10
Strong
0
Defensible
0
Weak
0
Nothing decided yet
Answer a decision above and it is recorded here with the alternative you rejected.