Given a product requirement — “build a URL shortener”, “design a notification system”, “scale the checkout service” — produce an architecture that satisfies functional requirements at stated scale, degrades gracefully under failure, and can evolve as requirements change. The deliverable is not a single diagram but a reasoned sequence of decisions, each with explicit tradeoffs.
The constraints are: limited time, incomplete information, and the impossibility of optimising all dimensions simultaneously.