Architecture Styles
CQRS: Command Query Responsibility Segregation
Separating the write model from the read model to let each evolve independently and scale differently.
CQRS splits an application's operations into Commands (intent to change state, no return value) and Queries (read state, no side effects). The write side enforces domain rules and emits events; the read side builds denormalised projections optimised for specific query patterns. The two sides can use completely different data models, databases, and scaling strategies.
Continue reading
- →
Dependency Injection and IoC Containers
Invert control of dependency creation to keep classes decoupled from their collaborators and trivially testable.
- →
The Observer Pattern and Event-Driven Design
Decouple publishers from subscribers by letting objects register interest in events without the producer knowing who is listening.
- →
The Strategy Pattern: Encapsulating Algorithms
Define a family of algorithms, encapsulate each one, and make them interchangeable — open for extension, closed for modification.