0 likes | 19 Views
Domain Driven Design or DDD is a<br>software design principle where <br>developers build small models of a <br>large application and collaborate <br>with domain experts using them as <br>conceptual foundation for <br>developing software.<br>
E N D
Domain Driven Design for Microservice Architecture #techtuesdays
What is domain driven design? Domain Driven Design or DDD is a software design principle where developers build small models of a large application and collaborate with domain experts using them as conceptual foundation for developing software. #techtuesdays
Why DDD gained importance? Larger the domain, the more difficult it is to find a consistent and unified model spanning the entire domain. DDD encourages breaking down a domain into subdomains through identifying bounded contexts. #techtuesdays
Bounded Context (BC) It is a boundary within which a word has definite and unambiguous meaning. For example, the meaning of the word “book” changes in different contexts. Online Bookstore Domain Catalog Context Shipment Context Cover art Price Author Reviews Address Zip Code Weight #techtuesdays
Context Map Context map is the relationships between different BC Catalog Payment Shipment Cover art Price Author Reviews Price Payment Method Address Zip Code Weight Process order Start shipment Storehouse Stock Check if book is in stock Retrieve book from storehouse Inventory #techtuesdays
Phases of DDD Strategic phase Identify the BCs and map them out in context map. Tactical phase Model each BC according to the business rules of the subdomain. #techtuesdays
Domain Oriented Microservices Architecture (DOMA) DOMA is an approach where microservices are designed and organized depending on different domains of an application. #techtuesdays
Core principles and terminology Domains A collection of related microservices. Layers A collection of domains. Gateways Single point entry into the layers. Each domain is agnostic to the other. Entry into a domain is only possible through a gateway. Layers establish dependencies that a microservice is allowed to take on. #techtuesdays
Benefits Simpler communication Domain focussed applications Greater flexibility #techtuesdays
Thank you for your time. Contact us: hello@gleecus.com #techtuesdays www.Gleecus.com