← All commands
Development · /architecture
Architecture
Design component boundaries, responsibilities, data flow, and tradeoffs.
When to use it
Use this to design boundaries, data flow, and tradeoffs for a new system or component.
Useful inputs
- Problem and use cases
- Scale and availability goals
- Technical and team constraints
Instruction
Define components and responsibilities, show data flow and dependency direction, and state scalability, security, and maintenance tradeoffs.
Example input
System: Task tracker for a 3-person team. Users: 200. Needs: Tasks, comments, email notifications. Constraint: .NET and one region.
Example result
Starting design: One ASP.NET application, a relational database, and a background notification queue. Boundaries: Task and comment operations stay in the app; email delivery runs in a queue worker. Evolution point: Consider separating the notification worker if traffic or independent deployment needs justify it.
Common pitfall
Without user and traffic data, do not assume exact scale targets or complex infrastructure.