001_Application Architecture - ZHAW-PM4-Compass/compass GitHub Wiki
Decided
The project will be a web application. The architecture options considered therefore include a monolith, layered architecture, and microservices.
- Monolith: One deployment with one code base and data base
- Pro: Easy to manage, simplicity, re-usage of code
- Con: Scalability, code bottleneck, flexibility
- Layered Architecture:
- Pro: Separation of concerns, flexibility and scalability, ease of deployment
- Con: Performance overhead, increased complexity, duplication
- Microservices:
- Pro: Flexibility, independence, variance of technologies
- Con: Complexity, operative overhead, challenges with network
Opt for a layered architecture with two applications communicating over REST interfaces, balancing complexity and modularity. Seperating frontend and backend.
- Enables focused development on separate layers, improving maintainability.
- REST interface facilitates future expansion or integration with other services.