Rate Limiting, Circuit Breakers & Resilience Patterns
Keep services up when dependencies fail: timeouts, retries with jitter, circuit breakers, bulkheads, fallbacks, rate limiting and load shedding.
What you'll learn
- Explain how slow dependencies and uncontrolled retries cause cascading failures.
- Set deadlines and timeouts and design safe retries with backoff, jitter, budgets and idempotency keys.
- Configure circuit breakers, bulkheads, fallbacks and kill switches with common libraries.
- Implement and compare rate-limiting algorithms, including distributed limits in Redis.
- Protect services from overload with load shedding, adaptive concurrency limits, back-pressure and client-side throttling.
- Apply resilience policies in meshes and gateways, test them with fault injection and monitor them in production.
Syllabus
Why Resilience Patterns Exist
Timeouts and Retries
Circuit Breakers
- How a Circuit Breaker Works
- Circuit Breakers in Resilience4j and Polly
- Designing Breakers and Combining Patterns
Isolation and Graceful Degradation
Rate Limiting
Overload Protection
Resilience in Libraries, Meshes and APIs
- Resilience in the Service Mesh and Gateway
- Idempotency Keys for Safe Retries
- Choosing and Standardising Resilience Libraries