How Uber Migrated from a Monolith to 2,200 Microservices

A decade of architectural decisions, database rewrites, and hard-won lessons — the full teardown