What is the Circuit Breaker pattern?
Circuit Breaker prevents cascading failures by monitoring for failures and temporarily blocking requests to failing services. States: Closed (normal), Open (failing), Half-Open (testing recovery).
What is the Retry pattern?
Retry pattern automatically retries failed operations. Should use exponential backoff (increasing delays) and jitter (randomization) to avoid overwhelming systems. Set max retry limits.
What is the Bulkhead pattern?
Bulkhead isolates resources into pools so failure in one area doesn’t affect others. Like ship compartments, it prevents total system failure. Example: separate thread pools per service.
What is the Saga pattern?
Saga manages distributed transactions across microservices using a sequence of local transactions. Each step has a compensating transaction for rollback. Coordination: choreography or orchestration.
What is CQRS (Command Query Responsibility Segregation)?
CQRS separates read and write operations into different models. Write model optimized for updates, read model optimized for queries. Allows independent scaling and optimization.
What is Event Sourcing?
Event Sourcing stores all changes as a sequence of events rather than current state. The state is reconstructed by replaying events. Provides audit trail and time travel capabilities.
What is the Strangler Fig pattern?
Strangler Fig gradually replaces a legacy system by incrementally building new features around it. Old functionality is slowly retired as new system takes over. Reduces migration risk.
What is the Sidecar pattern?
Sidecar deploys helper components alongside main application in separate containers. Handles cross-cutting concerns like logging, monitoring, networking. Used in service mesh architectures.
What is the Ambassador pattern?
Ambassador pattern places a proxy container alongside application to handle network-related tasks like retry logic, monitoring, logging. Offloads complexity from main application.
What is the Backend for Frontend (BFF) pattern?
BFF creates separate backend services tailored for each frontend (web, mobile, IoT). Each BFF optimizes API for its specific client needs. Prevents bloated one-size-fits-all APIs.