Blog Logo
TAGS

Domain Driven Design: Strategic Design and Integration Patterns

As developers, many of us have worked in monolithic applications or are currently working in one. Monolithic architecture can be a silver bullet for small projects, but it comes with several disadvantages when its used for widely-used products or solutions. For example, most large monolith applications have an anemic domain model; domain model responsibilities are commonly spread to services, manager, and helper classes. Additionally, large and monolithic code bases can be challenging for developers, causing slower development and less productivity. Microservice architecture offers relief, but how do we divide our monolith into loosely-coupled contexts and identify the appropriate integration pattern for each one? Based on the book Microservices Patterns by Chris Richardson, dividing monolithic applications into loosely-coupled applications is best done via the compose by business capability pattern or the compose by sub-domain pattern. In this article, well focus on the latter, sharing our knowledge of it and the DDD toolset, as well as how to compose monoliths.