Last Updated: June 6, 2026
By 2018, Uber was running somewhere north of two thousand microservices. That number gets quoted as a badge of sophistication, but inside the company it had become a problem. Changing anything that touched many services meant coordinating dozens of teams, new engineers could not grasp how the system fit together, and the architecture that was supposed to enable speed had started to slow everyone down.
Uber's answer, published in 2020, is domain-oriented microservices architecture, or DOMA. It is a correction rather than a rejection of microservices: a way to keep the independence services give you while taming the chaos of having too many of them. Uber split too far, felt the pain, and found its way back, which makes it a sharper case study than a clean success.
For an interview, Uber supports a more specific point than "microservices are good." It lets you argue that the number of services is a cost, not a goal, and that the right granularity is the one your organization can operate. This chapter walks through how Uber got there and what DOMA actually changed.