AlgoMaster Logo

Case Study: Uber's Domain-Oriented Microservices

10 min readUpdated November 11, 2026

Uber is one of the most interesting examples of how microservices architecture evolves as an organization grows. When Uber started scaling its platform, it moved away from a monolithic architecture toward independently deployable microservices. This helped engineering teams release features faster, scale different parts of the system independently, and improve service ownership.

But as Uber continued growing, it encountered a different problem. The number of microservices became so large that understanding dependencies, making changes, and debugging failures became increasingly difficult. By 2020, Uber reported operating approximately 2,200 critical microservices.

To manage this complexity, Uber introduced an architectural approach called Domain-Oriented Microservice Architecture (DOMA). Instead of treating every microservice as an independent architectural unit, DOMA organizes related services into domains with clear interfaces and dependency rules. In this chapter, we'll explore why Uber developed DOMA, how it works, and what we can learn from it when designing large microservices architectures.

Premium Content

Subscribe to unlock full access to this content and more premium articles.