← 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.