System-Level Design: Components, Communication and Structure
Looks at your whole system instead of single files: splits it into services with clear responsibilities, designs how they talk to each other, proposes a folder structure and suitable patterns, and flags bottlenecks and scaling risks early.
system designarchitectureservicesscalability
The system I am building: [system description]
Reason about the system as a whole:
- Divide it into services or components, each with clearly defined responsibilities.
- Design how they communicate with one another (APIs, events and so on).
Then:
- Propose a structure for the project and its folders.
- Recommend design patterns (for example MVC or microservices) where they are relevant.
- Flag possible bottlenecks or scaling problems as early as possible.