Layered Architecture: Monolithic structure with technical partitioning. Prone to the *sinkhole* antipattern. Offers simplicity and low cost, but limits scalability, elasticity, and deployability. Pipeline Architecture: Based on functional programming using pipes & filters (producer, transformer, tester, consumer). Similar to layered architecture but focused on data flow. Microkernel Architecture: A central core extended through plugins containing business logic. Can be partitioned technically or by domain. Typically monolithic; exposing plugins via REST is not recommended. Service-Based Architecture: Coarse-grained, distributed services organized by domain. Often share a database. Key Concepts: * Quanta: cohesive unit of deployment. * Services aligned with DDD subdomains. * Consistency: ACID within a service, BASE across services. * Use of patterns like SAGA (with state machines) to handle distributed transactions.
Monolithic structure with technical partitioning. Prone to the *sinkhole* antipattern. Offers simplicity and low cost, but limits scalability, elasticity, and deployability.
Pipeline Architecture:
Based on functional programming using pipes & filters (producer, transformer, tester, consumer). Similar to layered architecture but focused on data flow.
Microkernel Architecture:
A central core extended through plugins containing business logic. Can be partitioned technically or by domain. Typically monolithic; exposing plugins via REST is not recommended.
Service-Based Architecture:
Coarse-grained, distributed services organized by domain. Often share a database.
Key Concepts:
* Quanta: cohesive unit of deployment.
* Services aligned with DDD subdomains.
* Consistency: ACID within a service, BASE across services.
* Use of patterns like SAGA (with state machines) to handle distributed transactions.