SlideShare une entreprise Scribd logo
1  sur  36
1
Domain Driven
Design
Strategic design & Microservices
http://radblog.pl/DDD
2
WHY
SHOULD
YOU
EVEN
CARE?
3
radblog.pl @RadekMaziarkaobjectivity.co.uk
Radek Maziarka
4
5
Monolith Microservices
6
Modularity – the final frontierŁukasz Szydło at Boiling Frogs 2018
NO YES
NO Monolith
YES Microservices
DISTRIBUTED
MODULAR
Distributed Monolith
7
Ecommerce platform
Multiple areas in selling products
NOTIFICATIONS
DELIVERY
PRODUCT
MANAGEMENT
ORDERSSTORE
ACCOUNTS
8
Splitting Monolith by distributionMost common transition to microservices
Store
Func 2
Account
Func 2
Delivery
Func 1
Store
Func 3
Delivery
Func 2
Delivery
Func 3
Order
Func 1
Order
Func 3
Account
Func 1
Store
Func 1
Order
Func 2
Account
Func 3
All Func
in one DB
Delivery
Func 2
Store
Func 3
Delivery
Func 3
App
2-Func DB
Order
Func 1
Order
Func 3
Account
Func 2
2-Func DB
Store
Func 2
Delivery
Func 1
Account
Func 1
3-Func DB
Order
Func 2
Store
Func 1
Account
Func 3
3-Func DB
Service 1 Service 2
Service 3 Service 4
9
Monolith splitted by distributionMicroservices fitness check
3
TRANSACTION INSIDE
SERVICE
BUSINESS FOCUSED SERVICES
SINGLE DATA OWNERSHIP2
1
Delivery
Func 2
Store
Func 3
Delivery
Func 3
2-Func DB
Order
Func 1
Order
Func 3
Account
Func 2
2-Func DB
Store
Func 2
Delivery
Func 1
Account
Func 1
3-Func DB
Order
Func 2
Store
Func 1
Account
Func 3
3-Func DB
Service 1 Service 2
Service 3 Service 4
4 INDEPENDENT DEPLOYMENTS
Func mix in one DB
V2 V2
V2
10
Distributed MonolithDisadvantages of distributed big ball of mud
3
DISTRIBUTED TRANSACTION
MIXED SERVICES
NO DATA OWNERSHIP2
1
Delivery
Func 2
Store
Func 3
Delivery
Func 3
Order
Func 1
Order
Func 3
Account
Func 2
Store
Func 2
Delivery
Func 1
Account
Func 1
Order
Func 2
Store
Func 1
Account
Func 3
4 DEPENDENT DEPLOYMENTS
2-Func DB 2-Func DB
3-Func DB 3-Func DB
Service 1 Service 2
Service 3 Service 4
11
Distributed Monolith - articlesWhy you should not take this step
12
JAKUB NABRDALIK
MICROSERVICES ARE
TECHNICAL SOLUTION
And developers love technical solutions
Conway’s revenge - Bydgoszcz JUG - https://www.youtube.com/watch?v=UhIIpUQ-i38
Mentor in Bottega IT Solution
13
14
Modularity – the final frontierŁukasz Szydło at Boiling Frogs 2018
NO YES
NO Monolith
YES Microservices
DISTRIBUTED
MODULAR
Modular Monolith
Distributed Monolith
DDD
15
Domain Driven Design
Tactical patternsStrategic design
Aggregates
Repositories
Entities
Services
Events
Dependency Injection
Modules
Factories
Layers
Core domain
Sub-domain
DomainUbiquitous Language
Domain model
Context Map
Context
Generic Subdomain
Bounded Context
17
Domain Driven Design
In ecommerce domain
18
UBIQUITOUS
LANGUAGE
19
3
ADD ORDER
UPDATE SHIPPING
2
1
Customer storiesClient actions in a store
4 ITEMS COLLECTION
DELETE ORDER
20
3
SPOKEN LANGUAGE MUST
REFER TO BUSINESS
LANGUAGE WILL EVOLVE WITH
UNDERSTANDING DOMAIN
SHARED LANGUAGE FROM BUSINESS
TO CODEBASE2
1
Shared understandingCommon language between people
User Client
Add order Place order
Update delivery Change delivery date
Items collection Product catalogue
Fast shipping Express delivery
21
Deeper understanding
of business
Code adjusted
to business needs
Better cooperation
with the client
Ubiquitous LanguageBenefits of using UL
22
BOUNDED
CONTEXT
23
ShippingIn online store platform
3
CRUCIAL CONTEXT
CLIENT WILL FOCUS ON IT
GENERATE A LOT OF MONEY2
1
24
3
CORE DOMAINS
GENERIC SUBDOMAINS
SUPPORTING SUBDOMAINS2
1
Different importanceDomains are not equally significant
Orders
Store
Delivery
Notifications
Account
25
User in ecommerce contextDifferent meanings of users
ACCOUNTSDELIVERYSTORE ORDERS
• Shopper who looks for a
products
• Can add products to
basket
• Customer who bought
placed order
• Can change payment
• User in store account
• Can check personal data
• Recipient who gets
delivery
• Can change change
delivery address
26
3
LOGICAL BOUNDARY
BETWEEN UNDERSTANDINGS
UNIFIED MODEL DOES NOT EXISTS
DIFFERENT MODEL FUNCTIONS
AND DATA STRUCTURE2
1
Bounded contextThings has different meaning between contexts
CustomerOrder
Payment
Products
Recipient Delivery
Company
Address
Orders Delivery
27
Modules divided from
business perspective
Solution adjusted
to use-case
Team bounded
to single context
Bounded ContextBenefits of using BC
28
CONTEXT
MAP
29
3
DIFFERENT WAYS OF
INTEGRATIONS
SEPARATE WAYS AS
INTEGRATION APPROACH
TRANSLATIONS BETWEEN
CONTEXT2
1
Context mapApproaches of communications between contexts
Orders
Store
Shipping
Notifications
Down
Up
Shared Kernel Shared Kernel
Layer
Partnership
Legacy
Reporting
Separate
Ways
30
More effective integration
between contexts
Better informed
decisions
Organized, business
architecture
Context MapBenefits of using CM
31
32
Monolith -> Modular MonolithLess common transition to microservices
Store
Func 2
Account
Func 2
Delivery
Func 1
Store
Func 3
Delivery
Func 2
Delivery
Func 3
Order
Func 1
Order
Func 3
Account
Func 2
Store
Func 1
Order
Func 2
Account
Func 3
All Func in
one DB
Delivery
Func 2
Delivery
Func 3
Delivery
Func 3
App
Order
Func 1
Order
Func 3
Account
Func 2
Store
Func 2
Store
Func 3
Store
Func 1
Modules inside DB
Account
Func 2
Account
Func 1
Account
Func 3
Store Module Account Module
Delivery Module Order Module
App
33
Modular Monolith -> MicroservicesTransition to microservices step by step
Delivery
Func 2
Delivery
Func 3
Delivery
Func 3
Order
Func 1
Order
Func 3
Account
Func 2
Store
Func 2
Store
Func 3
Store
Func 1
Modules inside DB
Account
Func 2
Account
Func 1
Account
Func 3
App 1
Delivery
Func 2
Delivery
Func 3
Delivery
Func 3
Order
Func 1
Order
Func 3
Account
Func 2
Store
Func 2
Store
Func 3
Store
Func 1
Modules inside DB
Account
Func 2
Account
Func 1
Account
Func 3
App
Store DB
Delivery DB
Store Module Account Module
Delivery Module Order Module
Store Service Account Module
Delivery Service Order Module
34
Monolith splitted by modularizationMicroservices fitness check
Delivery
Func 2
Delivery
Func 3
Delivery
Func 3
Order
Func 1
Order
Func 3
Account
Func 2
Store
Func 2
Store
Func 3
Store
Func 1
Account
Func 2
Account
Func 1
Account
Func 3
Store DB
Delivery DB
Account DB
Order DB
3
TRANSACTION INSIDE
SERVICE
BUSINESS FOCUSED SERVICES
SINGLE DATA OWNERSHIP2
1
4 INDEPENDENT DEPLOYMENTS
Store Service Account Service
Delivery Service Order Service
35
Microservices DDD
36
radblog.pl/DDD
Articles:
•Weronika Łabaj - DDD Ultra-Lite
•Herberto Graca - Domain-Driven Design
•Carbon Five - Ubiquitous Language & the joy of naming
•Sapiens Work - DDD - The Bounded Context Explained
•Philip Brown - Strategies for Integrating Bounded Contexts
•Sebastian Gębski - The awesomeness of Modular Monolith
•Microsoft - Tackling Business Complexity in a Microservice with DDD and CQRS Patterns
•Berke Sokhan - Domain Driven Design for Services Architecture
Videos:
•DevTalk - DDD with Sławomir Sobótka
•DevTalk Trio - DDD
•Domain Driven Design: The Good Parts - Jimmy Bogard
•What is Domain Driven Design?
•DDD & Microservices: At Last, Some Boundaries!
•7 Reasons Why DDD Projects Fail
Books:
•Eric Evans - Domain Driven Design
•Vernon Vaughn - Implementing Domain-Driven Design
•Vernon Vaughn - Domain-Driven Design Distilled
•Sam Newman - Building Microservices: Designing Fine-Grained
Systems
37
radblog.pl/DDD
radblog.pl/DDD-form

Contenu connexe

Tendances

Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Agile India
 

Tendances (20)

CQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDDCQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDD
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
 
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDD
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes Istio
 
Event Storming and Saga
Event Storming and SagaEvent Storming and Saga
Event Storming and Saga
 
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Introducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineIntroducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring Statemachine
 
DDD Strategic Patterns and Microservices by Example
DDD Strategic Patterns and Microservices by ExampleDDD Strategic Patterns and Microservices by Example
DDD Strategic Patterns and Microservices by Example
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
Applying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain ModelsApplying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain Models
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 

Similaire à Domain Driven Design - Strategic Patterns and Microservices

Deepika jewel order processing system
Deepika jewel order processing systemDeepika jewel order processing system
Deepika jewel order processing system
muthuraja6728
 
World Micro Portal Training Presentation
World Micro Portal Training PresentationWorld Micro Portal Training Presentation
World Micro Portal Training Presentation
Daniel McMillen
 
WirelessWarehouseDatasheet
WirelessWarehouseDatasheetWirelessWarehouseDatasheet
WirelessWarehouseDatasheet
Frank Bruemmer
 
Gunavathi_Resume
Gunavathi_ResumeGunavathi_Resume
Gunavathi_Resume
guna vathi
 
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILEINTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
Rajesh Roky
 

Similaire à Domain Driven Design - Strategic Patterns and Microservices (20)

Deepika jewel order processing system
Deepika jewel order processing systemDeepika jewel order processing system
Deepika jewel order processing system
 
Projects worked at Safeway
Projects worked at SafewayProjects worked at Safeway
Projects worked at Safeway
 
Projects worked at Walmart
Projects worked at WalmartProjects worked at Walmart
Projects worked at Walmart
 
Enterprise architectsview 2015-apr
Enterprise architectsview 2015-aprEnterprise architectsview 2015-apr
Enterprise architectsview 2015-apr
 
Contextual Retail Engagement and Operations Enabled through MQTT, IBM Bluemix...
Contextual Retail Engagement and Operations Enabled through MQTT, IBM Bluemix...Contextual Retail Engagement and Operations Enabled through MQTT, IBM Bluemix...
Contextual Retail Engagement and Operations Enabled through MQTT, IBM Bluemix...
 
World Micro Portal Training Presentation
World Micro Portal Training PresentationWorld Micro Portal Training Presentation
World Micro Portal Training Presentation
 
Direct ship supply chain management system | order management
Direct ship supply chain management system | order managementDirect ship supply chain management system | order management
Direct ship supply chain management system | order management
 
Cloudfy B2B Ecommerce Platform in the Automotive Industry.pptx
Cloudfy B2B Ecommerce Platform in the Automotive Industry.pptxCloudfy B2B Ecommerce Platform in the Automotive Industry.pptx
Cloudfy B2B Ecommerce Platform in the Automotive Industry.pptx
 
The Value of Customer Insights & Analytics in a Modern Retail Environment
The Value of Customer Insights & Analytics in a Modern Retail EnvironmentThe Value of Customer Insights & Analytics in a Modern Retail Environment
The Value of Customer Insights & Analytics in a Modern Retail Environment
 
ERP for Project Industry - Nfra lite
ERP for Project Industry - Nfra liteERP for Project Industry - Nfra lite
ERP for Project Industry - Nfra lite
 
API-first Integration for Microservices
API-first Integration for MicroservicesAPI-first Integration for Microservices
API-first Integration for Microservices
 
Fall 2018 Microsoft Dynamics GP User Group
Fall 2018 Microsoft Dynamics GP User GroupFall 2018 Microsoft Dynamics GP User Group
Fall 2018 Microsoft Dynamics GP User Group
 
WirelessWarehouseDatasheet
WirelessWarehouseDatasheetWirelessWarehouseDatasheet
WirelessWarehouseDatasheet
 
Advanced applications with MongoDB
Advanced applications with MongoDBAdvanced applications with MongoDB
Advanced applications with MongoDB
 
Prepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDBPrepare for Peak Holiday Season with MongoDB
Prepare for Peak Holiday Season with MongoDB
 
DTS CISLINK eng
DTS CISLINK engDTS CISLINK eng
DTS CISLINK eng
 
Gunavathi_Resume
Gunavathi_ResumeGunavathi_Resume
Gunavathi_Resume
 
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILEINTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
INTEGRATED SHOPPING ASSISTANCE WITH FREDGE AND MOBILE
 
C4INFOTECH - SMART ERP
C4INFOTECH - SMART ERPC4INFOTECH - SMART ERP
C4INFOTECH - SMART ERP
 
Software for Project Planning - Nfra professional
Software for Project Planning - Nfra professionalSoftware for Project Planning - Nfra professional
Software for Project Planning - Nfra professional
 

Dernier

( Pune ) VIP Pimpri Chinchwad Call Girls 🎗️ 9352988975 Sizzling | Escorts | G...
( Pune ) VIP Pimpri Chinchwad Call Girls 🎗️ 9352988975 Sizzling | Escorts | G...( Pune ) VIP Pimpri Chinchwad Call Girls 🎗️ 9352988975 Sizzling | Escorts | G...
( Pune ) VIP Pimpri Chinchwad Call Girls 🎗️ 9352988975 Sizzling | Escorts | G...
nilamkumrai
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
@Chandigarh #call #Girls 9053900678 @Call #Girls in @Punjab 9053900678
 

Dernier (20)

Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
( Pune ) VIP Pimpri Chinchwad Call Girls 🎗️ 9352988975 Sizzling | Escorts | G...
( Pune ) VIP Pimpri Chinchwad Call Girls 🎗️ 9352988975 Sizzling | Escorts | G...( Pune ) VIP Pimpri Chinchwad Call Girls 🎗️ 9352988975 Sizzling | Escorts | G...
( Pune ) VIP Pimpri Chinchwad Call Girls 🎗️ 9352988975 Sizzling | Escorts | G...
 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls Dubai
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
 
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts ServiceReal Escorts in Al Nahda +971524965298 Dubai Escorts Service
Real Escorts in Al Nahda +971524965298 Dubai Escorts Service
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
 

Domain Driven Design - Strategic Patterns and Microservices

  • 1. 1 Domain Driven Design Strategic design & Microservices http://radblog.pl/DDD
  • 4. 4
  • 6. 6 Modularity – the final frontierŁukasz Szydło at Boiling Frogs 2018 NO YES NO Monolith YES Microservices DISTRIBUTED MODULAR Distributed Monolith
  • 7. 7 Ecommerce platform Multiple areas in selling products NOTIFICATIONS DELIVERY PRODUCT MANAGEMENT ORDERSSTORE ACCOUNTS
  • 8. 8 Splitting Monolith by distributionMost common transition to microservices Store Func 2 Account Func 2 Delivery Func 1 Store Func 3 Delivery Func 2 Delivery Func 3 Order Func 1 Order Func 3 Account Func 1 Store Func 1 Order Func 2 Account Func 3 All Func in one DB Delivery Func 2 Store Func 3 Delivery Func 3 App 2-Func DB Order Func 1 Order Func 3 Account Func 2 2-Func DB Store Func 2 Delivery Func 1 Account Func 1 3-Func DB Order Func 2 Store Func 1 Account Func 3 3-Func DB Service 1 Service 2 Service 3 Service 4
  • 9. 9 Monolith splitted by distributionMicroservices fitness check 3 TRANSACTION INSIDE SERVICE BUSINESS FOCUSED SERVICES SINGLE DATA OWNERSHIP2 1 Delivery Func 2 Store Func 3 Delivery Func 3 2-Func DB Order Func 1 Order Func 3 Account Func 2 2-Func DB Store Func 2 Delivery Func 1 Account Func 1 3-Func DB Order Func 2 Store Func 1 Account Func 3 3-Func DB Service 1 Service 2 Service 3 Service 4 4 INDEPENDENT DEPLOYMENTS Func mix in one DB V2 V2 V2
  • 10. 10 Distributed MonolithDisadvantages of distributed big ball of mud 3 DISTRIBUTED TRANSACTION MIXED SERVICES NO DATA OWNERSHIP2 1 Delivery Func 2 Store Func 3 Delivery Func 3 Order Func 1 Order Func 3 Account Func 2 Store Func 2 Delivery Func 1 Account Func 1 Order Func 2 Store Func 1 Account Func 3 4 DEPENDENT DEPLOYMENTS 2-Func DB 2-Func DB 3-Func DB 3-Func DB Service 1 Service 2 Service 3 Service 4
  • 11. 11 Distributed Monolith - articlesWhy you should not take this step
  • 12. 12 JAKUB NABRDALIK MICROSERVICES ARE TECHNICAL SOLUTION And developers love technical solutions Conway’s revenge - Bydgoszcz JUG - https://www.youtube.com/watch?v=UhIIpUQ-i38 Mentor in Bottega IT Solution
  • 13. 13
  • 14. 14 Modularity – the final frontierŁukasz Szydło at Boiling Frogs 2018 NO YES NO Monolith YES Microservices DISTRIBUTED MODULAR Modular Monolith Distributed Monolith DDD
  • 15. 15 Domain Driven Design Tactical patternsStrategic design Aggregates Repositories Entities Services Events Dependency Injection Modules Factories Layers Core domain Sub-domain DomainUbiquitous Language Domain model Context Map Context Generic Subdomain Bounded Context
  • 16. 17 Domain Driven Design In ecommerce domain
  • 18. 19 3 ADD ORDER UPDATE SHIPPING 2 1 Customer storiesClient actions in a store 4 ITEMS COLLECTION DELETE ORDER
  • 19. 20 3 SPOKEN LANGUAGE MUST REFER TO BUSINESS LANGUAGE WILL EVOLVE WITH UNDERSTANDING DOMAIN SHARED LANGUAGE FROM BUSINESS TO CODEBASE2 1 Shared understandingCommon language between people User Client Add order Place order Update delivery Change delivery date Items collection Product catalogue Fast shipping Express delivery
  • 20. 21 Deeper understanding of business Code adjusted to business needs Better cooperation with the client Ubiquitous LanguageBenefits of using UL
  • 22. 23 ShippingIn online store platform 3 CRUCIAL CONTEXT CLIENT WILL FOCUS ON IT GENERATE A LOT OF MONEY2 1
  • 23. 24 3 CORE DOMAINS GENERIC SUBDOMAINS SUPPORTING SUBDOMAINS2 1 Different importanceDomains are not equally significant Orders Store Delivery Notifications Account
  • 24. 25 User in ecommerce contextDifferent meanings of users ACCOUNTSDELIVERYSTORE ORDERS • Shopper who looks for a products • Can add products to basket • Customer who bought placed order • Can change payment • User in store account • Can check personal data • Recipient who gets delivery • Can change change delivery address
  • 25. 26 3 LOGICAL BOUNDARY BETWEEN UNDERSTANDINGS UNIFIED MODEL DOES NOT EXISTS DIFFERENT MODEL FUNCTIONS AND DATA STRUCTURE2 1 Bounded contextThings has different meaning between contexts CustomerOrder Payment Products Recipient Delivery Company Address Orders Delivery
  • 26. 27 Modules divided from business perspective Solution adjusted to use-case Team bounded to single context Bounded ContextBenefits of using BC
  • 28. 29 3 DIFFERENT WAYS OF INTEGRATIONS SEPARATE WAYS AS INTEGRATION APPROACH TRANSLATIONS BETWEEN CONTEXT2 1 Context mapApproaches of communications between contexts Orders Store Shipping Notifications Down Up Shared Kernel Shared Kernel Layer Partnership Legacy Reporting Separate Ways
  • 29. 30 More effective integration between contexts Better informed decisions Organized, business architecture Context MapBenefits of using CM
  • 30. 31
  • 31. 32 Monolith -> Modular MonolithLess common transition to microservices Store Func 2 Account Func 2 Delivery Func 1 Store Func 3 Delivery Func 2 Delivery Func 3 Order Func 1 Order Func 3 Account Func 2 Store Func 1 Order Func 2 Account Func 3 All Func in one DB Delivery Func 2 Delivery Func 3 Delivery Func 3 App Order Func 1 Order Func 3 Account Func 2 Store Func 2 Store Func 3 Store Func 1 Modules inside DB Account Func 2 Account Func 1 Account Func 3 Store Module Account Module Delivery Module Order Module App
  • 32. 33 Modular Monolith -> MicroservicesTransition to microservices step by step Delivery Func 2 Delivery Func 3 Delivery Func 3 Order Func 1 Order Func 3 Account Func 2 Store Func 2 Store Func 3 Store Func 1 Modules inside DB Account Func 2 Account Func 1 Account Func 3 App 1 Delivery Func 2 Delivery Func 3 Delivery Func 3 Order Func 1 Order Func 3 Account Func 2 Store Func 2 Store Func 3 Store Func 1 Modules inside DB Account Func 2 Account Func 1 Account Func 3 App Store DB Delivery DB Store Module Account Module Delivery Module Order Module Store Service Account Module Delivery Service Order Module
  • 33. 34 Monolith splitted by modularizationMicroservices fitness check Delivery Func 2 Delivery Func 3 Delivery Func 3 Order Func 1 Order Func 3 Account Func 2 Store Func 2 Store Func 3 Store Func 1 Account Func 2 Account Func 1 Account Func 3 Store DB Delivery DB Account DB Order DB 3 TRANSACTION INSIDE SERVICE BUSINESS FOCUSED SERVICES SINGLE DATA OWNERSHIP2 1 4 INDEPENDENT DEPLOYMENTS Store Service Account Service Delivery Service Order Service
  • 35. 36 radblog.pl/DDD Articles: •Weronika Łabaj - DDD Ultra-Lite •Herberto Graca - Domain-Driven Design •Carbon Five - Ubiquitous Language & the joy of naming •Sapiens Work - DDD - The Bounded Context Explained •Philip Brown - Strategies for Integrating Bounded Contexts •Sebastian Gębski - The awesomeness of Modular Monolith •Microsoft - Tackling Business Complexity in a Microservice with DDD and CQRS Patterns •Berke Sokhan - Domain Driven Design for Services Architecture Videos: •DevTalk - DDD with Sławomir Sobótka •DevTalk Trio - DDD •Domain Driven Design: The Good Parts - Jimmy Bogard •What is Domain Driven Design? •DDD & Microservices: At Last, Some Boundaries! •7 Reasons Why DDD Projects Fail Books: •Eric Evans - Domain Driven Design •Vernon Vaughn - Implementing Domain-Driven Design •Vernon Vaughn - Domain-Driven Design Distilled •Sam Newman - Building Microservices: Designing Fine-Grained Systems

Notes de l'éditeur

  1. - Being closely aligned to business DDD results in better mapping client’s needs to product. - DDD focuces on creating common understanding between project’s parties. - DDD strategies allows to create more modular and maintable application.
  2. - Being closely aligned to business DDD results in better mapping client’s needs to product. - DDD focuces on creating common understanding between project’s parties. - DDD strategies allows to create more modular and maintable application.
  3. - Being closely aligned to business DDD results in better mapping client’s needs to product. - DDD focuces on creating common understanding between project’s parties. - DDD strategies allows to create more modular and maintable application.
  4. - - Każdy dział będzie - Nie da się stworzyc jednorodnego modelu ponieważ rzeczywistość nie jest jednorodna.