With all the talk of Microservices with Domain Driven Design, I have been looking at two architectures, the
Database-Centric Architecture and the
Domain-Centric Architecture (Not to be confused with Domain Driven Design). Now in the Database-Centric Architecture, the database is the focal object we depend on. Without it, the application would not function. Using the Spring Framework as an example, we can now easily implement a whole Microservice ecosystem with all the magic Spring provides us. However, looking at a lot of Microservices diagrams it still looks a lot more Data-Centric to me as the database seems to be an important component that if it stopped working, the system would not function at all.
Looking at the diagram above, we easily break monoliths into independent services and we do manage to apply the Domain Driven Design within our Microservices. However, it still seems to me that we are still within the Database-Centric Architecture as our microservices would not function as expected without our databases. Also it seems that using a framework like Spring generally ties you into the MVC pattern (@Controller, @Service, @Repository) which to me is more Database-Centric rather than Domain-Centric.