SCALA BASED SERVICES RESILIENCE IN THE REAL WORLD
summary
Ocado runs 100+ Scala microservices and enforces a 100ms SLA for price evaluation under tens of thousands of requests per second; resilience comes from concrete patterns (timeouts, retries, circuit breakers, speculative requests) and tooling choices: AWS Beanstalk, Zipkin + ELK for tracing/logs, New Relic for profiling, Akka/Monix/STTP for async IO. Retrying helps when behind load balancers but can storm upstream; circuit-breaker rest time must avoid stacked waits. Experimental speculative retries plus Monix TestScheduler prove effective for 99th‑percentile hiccups.
AI-written summary · about
chapters (14)
- 0:00Start
- 4:36Foundations
- 8:59Shared support toolset
- 12:51Pricing services
- 16:20Successful retry
- 20:43Akka ask pattern
- 21:43Scala Future
- 22:33Monix timeout
- 24:29Circuit Breaker implementations
- 24:46Basic usage
- 25:46Circuit breaker configuration
- 27:17The fallback
- 29:46Blocking calls isolation
- 33:46Implementation hints
related talks
25mBuilding a highly scalable system to assure Business Resilience
40mLet it fail: resilience patterns for microservices
38mMonolith vs. Microservices
32mBeyond Optimization: Resilient Cloud Microservices at Scale
44mLong-lived microservices
58mResilient by Design
49mScaling Reliability: So You Want to Add a 9
50mSurviving Scale: Patterns for Evolving Failure-Resilient Microservices
