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.
