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.