Table of Contents
- 1. Software Design
- 2. Systems Architecture
- 2.1. SOA
- 2.1.1. Business value is given more importance than technical strategy.
- 2.1.2. Strategic goals are given more importance than project-specific benefits.
- 2.1.3. Intrinsic interoperability is given more importance than custom integration.
- 2.1.4. Shared services are given more importance than specific-purpose implementations.
- 2.1.5. Flexibility is given more importance than optimization.
- 2.1.6. Evolutionary refinement is given more importance than pursuit of initial perfection.
- 2.2. Microservices Architecture Pattern
- 2.3. Hexagonal Architecture
- 2.4. Rainbow Architecture
- 2.5. PET Architecture
- 2.6. Reactive Design Patterns, Roland Kuhn with Brian Hanafee and Jamie Allen
- 2.7. Functional Design and Architecture, Alexander Granin
- 2.8. Event-Driven Architecture
- 2.9. Layered Architecture
- 2.10. Federation
- 2.11. API Registry
- 2.1. SOA
- 3. Architectural Patterns
- 4. System Diagrams
- 5. Methodologies
1. Software Design
1.1. SOLID
In software engineering, SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible, and maintainable.
1.2. Domain Modeling
1.3. Domain Driven Design
1.4. Combinators
1.5. Annotation
1.6. Pattern Matching
1.7. DSLs
1.9. ERD
1.10. Active Record
2. Systems Architecture
2.1. SOA
2.1.1. Business value is given more importance than technical strategy.
2.1.2. Strategic goals are given more importance than project-specific benefits.
2.1.3. Intrinsic interoperability is given more importance than custom integration.
2.1.4. Shared services are given more importance than specific-purpose implementations.
2.1.5. Flexibility is given more importance than optimization.
2.1.6. Evolutionary refinement is given more importance than pursuit of initial perfection.
2.2. Microservices Architecture Pattern
2.3. Hexagonal Architecture
2.4. Rainbow Architecture
- Black: Cloud Provider with Platform Engineering
- Grey: Application Containers with Vertical Infrastructure
- White: Business and Product
2.5. PET Architecture
2.5.1. D: Dog
- Provider
- Accounts
- Persistence
2.5.2. C: Cat
- Container
- Execution
2.5.3. F: Fish
- Eventing
- Application
- Messaging
- Mesh
- Cache
2.5.4. B: Bird
- CI/CD
- Automation
- Testing
- Release Engineering
2.5.5. R: Reptile
- Onboarding
- Developer Tooling
- Libraries
2.6. Reactive Design Patterns, Roland Kuhn with Brian Hanafee and Jamie Allen
- Functional and Reactive Domain Modeling, Stephen Blackheath and Anthony Jones
- Functional Reactive Programming, Stephen Blackheath and Anthony Jones
- Functional and Reactive Domain Modeling, Debasish Ghosh
- https://www.reactivemanifesto.org/
2.7. Functional Design and Architecture, Alexander Granin
2.8. Event-Driven Architecture
Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.