[2/2] Introducing Domain-Oriented Microservice Architecture (Category Architecutre)
Concluding the story of DOMA, which began in first-postI would like to talk about the remaining components of the architecture and the results.
The third architectural principle is the gateway. It is quite standard from the point of view of technical implementation, but at the domain level, it allows to provide a clear contract reduction in complexity for those interacting with the domain, as well as simpler migrations within the domain itself. The fourth element is that the expansion points offer two possibilities: logic expansion and data model extension. Logical extensions are implemented through the ability to connect plugins with interfaces determined for each service independently. (An example is given with the case when the driver gets on the line and additional checks that he can do it.). And data can be expanded by adding arbitrary options to the core model. Also, commands inside domains can come up with other expansion points.
At the exit, the authors received
- Reduced complexity: through integration 2200 microservices 70 DOMA domains simplify dependency management and system maintenance (domains and layers)
- Improved scalability and flexibility: The architecture enables independent domain development and deployment, while retaining flexibility for future migrations (gateways)
- Improved developer experience: A structured approach reduces the cognitive burden on developers, allowing faster function development and easier troubleshooting (through clear APIs and expansion points)
- DOMA has proven effective in managing large-scale operations at Uber
Finally, the author recommends that start-ups use monoliths, medium-sized organizations microservices, and large to go towards home. (DOMA)
This is an interesting article from Uber. 2020 years. If you look for more information now, it seems that this approach is still used by Uber. For the sake of interest, I searched Uber's whitepapers on the topic of DOMA and found none - Uber is not Google to write scientific articles:)
#DistributedSystems #Architecture #SystemDesign #Engineering #Software