Living with Distributed Systems
summary
Engine Yard extracts functionality from a monolithic Rails app into separate services, shipping a provisioning service and a keymaster service and running all traffic over HTTP/HTTPS only. Services use a mapper pattern (Sinatra servers, a mapper layer decoupling domain models, and client libraries) with rack-client and ey_api_hmac on the wire. Migration happens per-customer in four steps; keymaster initially causes ~1-in-15–1-in-30 SSH timeouts, fixed by retries (idempotent middleware), tighter timeouts, intent modeling, per-app Redis caches with background refresh, feature flags, and read-only fallbacks.
AI-written summary · about
chapters (15)
- 0:00Start
- 0:37Engine Yard
- 2:09The Basics
- 5:00Client and Server
- 8:30The Obvious
- 10:27Mapper Pattern
- 11:54Fake Mapper
- 12:39Web Request
- 13:08API Tests
- 14:05Server App Tests
- 15:21API Client
- 15:35Where's the route?
- 18:56Shipping a Service
- 20:40Design for Resiliency
- 28:13Questions?
related talks
44mBuilding Distributed Applications
30mA tale of two distributed systems through the lens of a developer
43mRails is a Follower
25mGrowing Distributed Systems
51mScaling yout Architecture with Services and Events
45mMicro Services and Events: Friends or Foes?
40mCAPtivating architecture: Navigating Distributed Systems and Microservices
41mIntroduction to distributed systems
