Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Architecture Patterns - Coggle Diagram
Software Architecture Patterns
Chapter1
architecture styles
Distributed
consists of multiple deployment units that work together
Advantages
Scalability
MTTS & MTTR are much smaller than monolithic applications
High Fault Tolerance
If 1 service fails => other services can continue to service requests as if no fault happened
Agility (ability to respond quickly to change)
functionality is divided into separately deployed units of software => easier to locate & apply a change
Disadvantages
fallacies of distributed computing
https://oreil.ly/7g83B
[COMPLEXITIES] Eventual consistency, workflow mgmt, Error handling, Data synchronization, Contract mgmt
Much more cost due to complexities
e.g. event-driven, microservices, service-based, service-oriented, space-based architectures
Monolithic
Advantages
Lower cost
Simple
Disadvantages
Weak scalability, fault tolerance, elasticity
Mean time to recovery (MTTR) &
Mean time to start (MTTS) = LONG
(usually in minutes)
e.g. layered architecture, modular monolith, pipeline architecture, microkernel architecture
Which one to choose?
Does the entire system need to scale and support high availability or only parts of the system?
architecture partitioning
Technical
Domain