Seamlessly Swapping the API backend of the Netflix Android app
Article Summary
Netflix Android engineers migrated 170 API endpoints from a monolith to a new microservice without users noticing. Here's how they pulled it off over a year.
The Netflix Android team moved their Backend for Frontend (BFF) from a centralized Java monolith to a standalone Node.js microservice. This gave them full ownership of the request lifecycle, better observability, and faster local development while maintaining zero user impact.
Key Takeaways
- Built 3-tier testing: functional tests, replay testing with production traffic, and automated canaries
- Tracked latency metrics by UI screen to catch regressions before production rollout
- Gained distributed tracing with Zipkin to debug performance across microservices
- Switched from Java to JavaScript for endpoint code despite team unfamiliarity
- Traded some latency for observability when breaking monolith cache dependencies
Critical Insight
Netflix migrated all Android API endpoints to a new microservice with comprehensive testing infrastructure that prevented user-facing issues during the year-long transition.