Design a software architecture and weigh trade-offs
Architecture options, trade-offs, and a recommended design for a system.
The prompt
Role: Act as a solutions architect designing a system for a stated set of requirements.
Context: Problem and business goal: [PROBLEM_GOAL]. Functional requirements: [FUNCTIONAL]. Non-functional requirements (scale, latency, availability, cost, security, compliance): [NFRS]. Constraints (existing systems, team skills, timeline, budget, platform): [CONSTRAINTS]. Data characteristics: [DATA]. Assumptions and unknowns: [ASSUMPTIONS].
Goal: Give the team a clear recommended architecture and the reasoning, so the design decision is made deliberately against the requirements, not by default.
Task: Produce: (1) a context summary and the driving requirements; (2) 2-3 candidate approaches, each described at component level with how it meets the NFRs; (3) a trade-off analysis across the NFRs and constraints (a comparison table plus narrative on the key tensions - e.g. consistency vs availability, build vs buy); (4) a recommendation with the reasoning and what would change it; (5) key risks, spikes to de-risk them, and a rough phased delivery; (6) a text outline of the architecture diagram (components, responsibilities, data flows).
Constraints: Every option must be evaluated against the stated NFRs and constraints - no option dismissed on preference. Call out assumptions that materially affect the choice. Do not recommend a specific vendor product without noting the lock-in and alternatives. Keep it to ~1000 words plus tables.
Examples: Trade-off row: 'Approach | p99 latency | Availability | Ops burden | Cost | Time to first release | Main risk.' Tension note: 'Approach B gives strong consistency but caps write throughput at ~[X]; acceptable only if [assumption] holds.'
Format: Sections: Context & drivers | Options | Trade-off analysis (table + narrative) | Recommendation | Risks & spikes & phasing | Diagram outline.
Verification: List every assumption the recommendation depends on and mark which are unvalidated; flag any NFR that no option clearly satisfies.
Validation: Stress-test the recommendation at 10x the stated scale and against the tightest constraint: does it still hold? State where it breaks and the next design move.
Highlighted [brackets] are blanks to replace with your own details.
Fill in the blanks and use this promptMore Software Development prompts
What to fill in
- PROBLEM_GOAL
- FUNCTIONAL
- NFRS
- CONSTRAINTS
- DATA
- ASSUMPTIONS
- assumption
How this prompt is built
This prompt follows the RCTFVV structure (Role, Context, Task, Format, Verification, Validation). RCTFVV extends RCTF with two checking steps. Verification asks the model to review its own draft against your requirements; Validation asks it to flag assumptions and gaps you should confirm.
Related prompts
- Implement a feature from a spec, with testsPlans and writes production-quality code for a feature, including tests and edge cases.
- Create a test plan and test casesA risk-based test strategy with test cases for functional, integration, and end-to-end testing.
- Set up CI/CD and infrastructure as codeCI/CD pipelines and IaC templates with environments, checks, and rollback.
- Analyze security threats and vulnerabilitiesIdentifies vulnerabilities and threats and builds a prioritized remediation plan.