Software Architecture
par Erdem Alparslan

1. State
2. Transactions Management (SAGA)
3. Design Principals (SOLID Principals)
3.1. SRP: Single Responsibility Pr
3.2. ISP: Interface Segregation Pr
3.3. DIP: Dependency Inversion Pr
3.4. LSP: Liskov Substitution Pr
4. Component Principals
4.1. Component Cohesion
4.2. Component Coupling
5. Boundary Anatomy
5.1. Independence
5.2. Drawing Boundary Lines
5.3. Decoupling Layers
5.4. Partial Boundaries
6. OOP Design Patterns
6.1. Creational Patterns
6.1.1. Abstract Factory
6.1.2. Factory Method
6.1.3. Builder
6.1.4. Prototype
6.1.5. Singleton
6.2. Structural Patterns
6.2.1. Adapter
6.2.2. Bridge
6.2.3. Composite
6.2.4. Decorator
6.2.5. Facade
6.2.6. Flyweight
6.2.7. Proxy
6.3. Behavioral Patterns
6.3.1. Chain of Responsibility
6.3.2. Command
6.3.3. Interpreter
6.3.4. Iterator
6.3.5. Mediator
6.3.6. Momento
6.3.7. Observer
6.3.8. Strategy
6.3.9. Template
6.4. Visitor
7. Microservices Architecture
7.1. REST
7.2. Decomposition Strategies
7.3. Interprocess Communication
7.4. Business Logic Design and Event Sourcing
7.5. Implementation of Queries (CQRS: Common Query Responsibility Segregation)
7.6. Test Strategies
7.7. Deployment Strategies
7.8. Orchestration
7.9. Monolith Breaking Strategies
8. Messaging Architecture
9. Data Architecture
9.1. Data Models and Query Languages
9.2. Replication
9.3. Partitioning
9.3.1. Storage and Encoding