Design Patterns Directory
Explore proven design patterns for software architecture and code migration. Learn when to use each pattern and see related implementations.
Strangler Fig Pattern
Incrementally migrate a legacy system by gradually replacing pieces of functionality with new applications
Anti-Corruption Layer
Create a translation layer between new and legacy systems to prevent legacy concepts from leaking into new code
Blue-Green Deployment
Run two identical production environments, switching traffic between them for zero-downtime deployments
Canary Deployment
Gradually roll out changes to a small subset of users before rolling out to the entire infrastructure
Database per Service
Each microservice owns and manages its own database, enabling loose coupling and independent deployability
Saga Pattern
Manage data consistency across microservices using a sequence of local transactions with compensating actions
Event Sourcing
Store state changes as a sequence of events rather than just the current state
Backend for Frontend (BFF)
Create separate backend services tailored to each frontend's needs
Sidecar Pattern
Deploy auxiliary components alongside primary services for cross-cutting concerns
Feature Flags
Toggle functionality on or off without deploying new code