I'm a little confused. I work for a young banking company, and we decided to implement DDD architecture in order to destroy complexity.
So here is my question (this follows the design proposal made by someone on the team). Let them say that we have 3 different domains. D1, D2, D3, which provide domain (network) services. Each domain manipulates strongly typed business objects that rely on the same tables. In front of these domains, we want the microservice to ensure that the data stored in the tables is consistent, centrally. D1, D2, and D3 require the microservice to store data that conforms to certain rules. We want the microservice to act as a CRUD proxy for tables. The microservice provides specific DTOs for domains D1, D2 and D3, dipping tables D1, D2, D3.
Is this approach good? Could you use the microservices in the DDD architecture to control CRUD and data consistency for 1+ domains? Does CRUDING and microservice data verification violate a limited context? What are the best practices for working with microservices in the DDD architecture, if any?
Thanks so much for your input,
[EDIT]
The following article helped me refine my thoughts: http://martinfowler.com/bliki/MicroservicePremium.html
Microservices are useful in difficult situations when monolithic systems cannot withstand maintenance. They are not good candidates for upfront design implementations. On the other hand, DDD is trying to solve complexity at the very beginning of projects. A successful DDD does not have to match microservice implementations.
domain-driven-design microservices
Renald
source share