2022-03-19
You must analyze all aspects of your environment, including infrastructure support, developer skill set, project budget, project deadlines, and application size. Choosing the right architecture pattern is critical, because once an architecture is in place, it is very hard (and expensive) to change.
Layered architecture
- the most common architecture for monolithic applications.
- divide the app logic into several layers each encapsulating specific role.
- upper layers are close to business logic due to its bottom-up structure.
Event-driven architecture
- one of the popular distributed asynchronous architecture patterns known for high scalability and adaptability.
- decouple the application logic into single-purpose event processing components that asynchronously receive and process events.
- all components in this architecture are equal so that they are independent to provide their service.
Microkernel Architecture (Plugin architecture)
- two main components: a core system and plug-in modules (or extensions).
- A great example would be a Web browser (core system) where you can install endless extensions (or plugins).
Microservices Architecture
- separately deployed services, where each service would have ideally single responsibility.
- those services are independent of each other and if one service fails others will not stop running.
Space-Based Architecture (state machine in-memory)
- the distributed shared memory to mitigate issues that frequently occur at the database level.
- separate the application into processing units.