Exploring Software Design and Architectural Patterns
Table of Contents
- Software Design
- Systems Architecture
- SOA
- Business value is given more importance than technical strategy.
- Strategic goals are given more importance than project-specific benefits.
- Intrinsic interoperability is given more importance than custom integration.
- Shared services are given more importance than specific-purpose implementations.
- Flexibility is given more importance than optimization.
- Evolutionary refinement is given more importance than pursuit of initial perfection.
- Microservices Architecture Pattern
- Hexagonal Architecture
- Rainbow Architecture
- PET Architecture
- Reactive Design Patterns, Roland Kuhn with Brian Hanafee and Jamie Allen
- Functional Design and Architecture, Alexander Granin
- Event-Driven Architecture
- Layered Architecture
- Federation
- API Registry
- SOA
- Architectural Patterns
- System Diagrams
- Methodologies
Software Design
SOLID
In software engineering, SOLID is a mnemonic acronym for five design principles intended to make software designs more understandable, flexible, and maintainable.
Domain Modeling
Domain Driven Design
Combinators
Annotation
Pattern Matching
DSLs
ERD
Active Record
Systems Architecture
SOA
Business value is given more importance than technical strategy.
Strategic goals are given more importance than project-specific benefits.
Intrinsic interoperability is given more importance than custom integration.
Shared services are given more importance than specific-purpose implementations.
Flexibility is given more importance than optimization.
Evolutionary refinement is given more importance than pursuit of initial perfection.
Microservices Architecture Pattern
Hexagonal Architecture
Rainbow Architecture
- Black: Cloud Provider with Platform Engineering
- Grey: Application Containers with Vertical Infrastructure
- White: Business and Product
PET Architecture
D: Dog
- Provider
- Accounts
- Persistence
C: Cat
- Container
- Execution
F: Fish
- Eventing
- Application
- Messaging
- Mesh
- Cache
B: Bird
- CI/CD
- Automation
- Testing
- Release Engineering
R: Reptile
- Onboarding
- Developer Tooling
- Libraries
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/
Functional Design and Architecture, Alexander Granin
Event-Driven Architecture
Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.