SlideShare a Scribd company logo
1 of 45
#DotNextConf @farmar
Successfully Decomposing Your
Monolith (or UpdateUser(); Means
Nothing To Me)
Sean Farmar
Particular Software
1
#DotNextConf @farmar
Monolith Design
Analyse the domain
Build a data model that describes the
domain
Add relationships and dependencies
2
#DotNextConf @farmar
Monolith Design
Something like this:
3
Account
Id
IsClosed
OpenDate
Customer
Id
CustomerId
Phone
Address
LineItem
Id
Quantity
Price
Order
Id
OrderNumber
OrderDate
ShippingDate
OrderStatus
Id
OrderStatusName
Payment
Id
PaymentDate
Total
Product
Id
Name
Suplier
User
Id
UserName
UserStatus
Id
UserStatusName
New
Active
Blocked
Band
New
Hold
Shipped
Delivered
Closed
#DotNextConf @farmar
Monolith Design
Or this:
4
#DotNextConf @farmar
Monolith Design
Or this:
5
#DotNextConf @farmar
Monolith Design
Add a data layer
Add the Business Logic Layer
Build the UI
… don’t forget the kitchen sink
6
#DotNextConf @farmar
Monolith Design
7
#DotNextConf @farmar
Monolith Design
Can we validate the email on registration
And then send a welcome email?…
Oh, and add some integration with…
8
#DotNextConf @farmar
Monolith Design
And soon enough we end up with
a big ball of mud…
9
#DotNextConf @farmar
Monolith Design
So, do we hack it??
Refactor??
Redesign??
Rewrite??
10
#DotNextConf @farmar
Monolith Design
Do not re-write
Decompose…
11
#DotNextConf @farmar
Domain Driven Design
DDD
12
#DotNextConf @farmar
Domain Driven Design
13
“Every software program relates to some activity or interest of its user.”
Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software
#DotNextConf @farmar
Domain Driven Design
14
“DDD deals with large models by dividing
them into different Bounded Contexts
and being explicit about their interrelationships.”
Martin Fowler
#DotNextConf @farmar
DDD
Context
“The setting in which a work or a statement
appears that determines its meaning”
Eric Evans
15
#DotNextConf @farmar
DDD
Context
UpdateUser(User user);
A Step in a workflow
An Item in a CMS
16
#DotNextConf @farmar
DDD
Boundary
Inside: Autonomy, Ownership, Context
Outside: No direct impact, no side
effects, ready for change
17
#DotNextConf @farmar
DDD
Bounded Context
“The condition under which a particular
model is defined and applicable”
Eric Evans
18
#DotNextConf @farmar
DDD
Bounded Context
Where Context and Boundary make it
a distinct business process
19
#DotNextConf @farmar
Bounded Context
Be explicit, Keep it clean
Keep the boundaries
Encapsulate
20
#DotNextConf @farmar21
#DotNextConf @farmar
Find Units Of Work
As a user I can authenticate [UserAuthentication?]:
[UserName] (Could be email?)
[Password]
Does Authorization (access control) belong here as
well?
22
#DotNextConf @farmar
Find Units Of Work
CustomerContactDetails:
[CustomerId]
[ContactEmail] (is that the logging email?)
[CustomerPhoneNumberId] (optional?)
[CustomerAddressId] (optional?)
Email and Mobile Validation Process
23
#DotNextConf @farmar
Find Units Of Work
CustomerAccount:
[UserAuthenticationId]
[AccountName]
[AccountType]
[First Name]?
[Last Name]?
[AccountActive]
24
#DotNextConf @farmar
Find Units Of Work
PaymentDetails:
Add one or more payment methods
Add Billing Address
Add payment methods process(is it a
thing?)
25
#DotNextConf @farmar
DDD and Bounded Context
Let’s Talk About Process…
26
#DotNextConf @farmar
DDD and Bounded Context
It is not going to perfect 
27
#DotNextConf @farmar
DDD and Bounded Context
28
#DotNextConf @farmar
CustomerAccount
Id
UserAuthenticationId
AccountName
AccountType
FirstName
LastName
AccountActive
CustomerAddress
Id
AddressLine1
AddressLine2
City
County
Country
Zip
CustomerBillingAddress
Id
CustomerId
CustomerAddressId
Description
CustomerContactDetails
Id
CustomerId
CustomerPhoneNumberId
CustomerAddressId
ContactEmail
CustomerPaymentLogs
Id
CustomerId
TransactionId
OrderId
Ammount
CustomerPaymentMethods
Id
CustomerId
PaymentMethodType
PaymentDetails
IsActive
ValidateDate
CustomerPhone
Id
AreaCode
PhoneNumber
PhoneType
CustomerShippingAddress
Id
CustomerId
CustomerAddressId
Remarks
UserAuthentication
Id
UserName
Password
LockedOutDate
DDD and Bounded Context
29
UserAuthentication
#DotNextConf @farmar
CustomerAccount
Id
UserAuthenticationId
AccountName
AccountType
FirstName
LastName
AccountActive
CustomerAddress
Id
AddressLine1
AddressLine2
City
County
Country
Zip
CustomerBillingAddress
Id
CustomerId
CustomerAddressId
Description
CustomerContactDetails
Id
CustomerId
CustomerPhoneNumberId
CustomerAddressId
ContactEmail
CustomerPaymentLogs
Id
CustomerId
TransactionId
OrderId
Ammount
CustomerPaymentMethods
Id
CustomerId
PaymentMethodType
PaymentDetails
IsActive
ValidateDate
CustomerPhone
Id
AreaCode
PhoneNumber
PhoneType
CustomerShippingAddress
Id
CustomerId
CustomerAddressId
Remarks
UserAuthentication
Id
UserName
Password
LockedOutDate
DDD and Bounded Context
30
UserAuthentication
CustomerAccount
#DotNextConf @farmar
CustomerAccount
Id
UserAuthenticationId
AccountName
AccountType
FirstName
LastName
AccountActive
CustomerAddress
Id
AddressLine1
AddressLine2
City
County
Country
Zip
CustomerBillingAddress
Id
CustomerId
CustomerAddressId
Description
CustomerContactDetails
Id
CustomerId
CustomerPhoneNumberId
CustomerAddressId
ContactEmail
CustomerPaymentLogs
Id
CustomerId
TransactionId
OrderId
Ammount
CustomerPaymentMethods
Id
CustomerId
PaymentMethodType
PaymentDetails
IsActive
ValidateDate
CustomerPhone
Id
AreaCode
PhoneNumber
PhoneType
CustomerShippingAddress
Id
CustomerId
CustomerAddressId
Remarks
UserAuthentication
Id
UserName
Password
LockedOutDate
DDD and Bounded Context
31
UserAuthentication
CustomerAccount
CustomerPayment
#DotNextConf @farmar
CustomerAccount
Id
UserAuthenticationId
AccountName
AccountType
FirstName
LastName
AccountActive
CustomerAddress
Id
AddressLine1
AddressLine2
City
County
Country
Zip
CustomerBillingAddress
Id
CustomerId
CustomerAddressId
Description
CustomerContactDetails
Id
CustomerId
CustomerPhoneNumberId
CustomerAddressId
ContactEmail
CustomerPaymentLogs
Id
CustomerId
TransactionId
OrderId
Ammount
CustomerPaymentMethods
Id
CustomerId
PaymentMethodType
PaymentDetails
IsActive
ValidateDate
CustomerPhone
Id
AreaCode
PhoneNumber
PhoneType
CustomerShippingAddress
Id
CustomerId
CustomerAddressId
Remarks
UserAuthentication
Id
UserName
Password
LockedOutDate
DDD and Bounded Context
32
UserAuthentication
CustomerAccount
CustomerPayment
CustomerContact
#DotNextConf @farmar
CustomerAccount
Id
UserAuthenticationId
AccountName
AccountType
FirstName
LastName
AccountActive
CustomerAddress
Id
AddressLine1
AddressLine2
City
County
Country
Zip
CustomerBillingAddress
Id
CustomerId
CustomerAddressId
Description
CustomerContactDetails
Id
CustomerId
CustomerPhoneNumberId
CustomerAddressId
ContactEmail
CustomerPaymentLogs
Id
CustomerId
TransactionId
OrderId
Ammount
CustomerPaymentMethods
Id
CustomerId
PaymentMethodType
PaymentDetails
IsActive
ValidateDate
CustomerPhone
Id
AreaCode
PhoneNumber
PhoneType
CustomerShippingAddress
Id
CustomerId
CustomerAddressId
Remarks
UserAuthentication
Id
UserName
Password
LockedOutDate
DDD and Bounded Context
33
UserAuthentication
CustomerAccount
CustomerPayment
CustomerContact
CustomerBilling
?
#DotNextConf @farmar
Work Your Way Up
Start in the edge of the system
Use APIs where possible
Include the data in every iteration
34
#DotNextConf @farmar
Work Your Way Up
Find the bounded Context
Reduce it to the smallest model you can
Find the “Service” Boundaries and it’s
processes
35
#DotNextConf @farmar
Work Your Way Up
Nothing left outside
ITOps – outside service bouderies
36
#DotNextConf @farmar
Domain Driven Design - Bounded Context
Loose coupling outside the boundary
Tight coupling and cohesion inside the
boundary
Respect single data ownership
37
#DotNextConf @farmar
Composing
UI composition
API composition
Data composition – Read View Models
38
#DotNextConf @farmar
Summary
Use bounded context to slice your
verticals
Include the data in your vertical slicing
Let go of entities, use fields instead
39
#DotNextConf @farmar
Summary
Keep your boundaries
Reduce coupling between bounded
contexts
Use asynchronous communication (for
state changes)
Publish Subscribe between bounded
contexts
40
#DotNextConf @farmar
Summary
CQS, SRP, Clean Code
Align teams, repositories, business
segments
Don’t forget your stakeholders
41
#DotNextConf @farmar
Summary
It won’t be perfect, accept it

42
#DotNextConf @farmar
One more thing
Get free access to Advanced Distributed
Systems Design course recording with Udi
Dahan
http://go.particular.net/dotnextru19
43
#DotNextConf @farmar
Thank You!
44
Sean Farmar
@farmar
Particular.net
#DotNextConf @farmar
Questions?
Q&A
45

More Related Content

Similar to Successfully Decomposing Your Monolith 20190515 DotNext St. Petersburg

ppt_project_group_2.ppt amnd project report
ppt_project_group_2.ppt amnd project reportppt_project_group_2.ppt amnd project report
ppt_project_group_2.ppt amnd project reportsobanmoriwala1
 
Online reastaurant ordering managemant system
Online reastaurant ordering managemant systemOnline reastaurant ordering managemant system
Online reastaurant ordering managemant systemPreksha Thada
 
OSMS Slide-Abdul Hakeem.pptx
OSMS Slide-Abdul Hakeem.pptxOSMS Slide-Abdul Hakeem.pptx
OSMS Slide-Abdul Hakeem.pptxShaistaRiaz4
 
Manufacturing and sales management system
Manufacturing and sales management systemManufacturing and sales management system
Manufacturing and sales management systemSmit Patel
 
Nordic Sugcon xdb crash course
Nordic Sugcon xdb crash courseNordic Sugcon xdb crash course
Nordic Sugcon xdb crash courseTodd Mitchell
 
3.2. Process Order Info (Change the name ComponentModule .docx
3.2. Process Order Info (Change the name ComponentModule .docx3.2. Process Order Info (Change the name ComponentModule .docx
3.2. Process Order Info (Change the name ComponentModule .docxgilbertkpeters11344
 
Informatica Cloud Address Validation as a Service
Informatica Cloud Address Validation as a ServiceInformatica Cloud Address Validation as a Service
Informatica Cloud Address Validation as a ServiceDarren Cunningham
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development Open Party
 
How to Validate Form With Flutter BLoC.pptx
How to Validate Form With Flutter BLoC.pptxHow to Validate Form With Flutter BLoC.pptx
How to Validate Form With Flutter BLoC.pptxBOSC Tech Labs
 
STOCK MARKET TIPS
STOCK MARKET TIPSSTOCK MARKET TIPS
STOCK MARKET TIPSmona patel
 
Marketing Cloud - Cross Cloud Architecture - Identity Design - August 2023.pdf
Marketing Cloud - Cross Cloud Architecture - Identity Design - August 2023.pdfMarketing Cloud - Cross Cloud Architecture - Identity Design - August 2023.pdf
Marketing Cloud - Cross Cloud Architecture - Identity Design - August 2023.pdfKenneth Wagner
 
Time card system
Time card systemTime card system
Time card systemSmit Patel
 
E-commerce (System Analysis and Design)
E-commerce (System Analysis and Design)E-commerce (System Analysis and Design)
E-commerce (System Analysis and Design)Nazmul Hyder
 
Refactoring for microservices
Refactoring for microservicesRefactoring for microservices
Refactoring for microservicesIsmael Rivera
 
An exclusive ERP solution for Project Industry
An exclusive ERP solution for Project IndustryAn exclusive ERP solution for Project Industry
An exclusive ERP solution for Project Industrynfra erp
 

Similar to Successfully Decomposing Your Monolith 20190515 DotNext St. Petersburg (20)

ppt_project_group_2.ppt amnd project report
ppt_project_group_2.ppt amnd project reportppt_project_group_2.ppt amnd project report
ppt_project_group_2.ppt amnd project report
 
Online reastaurant ordering managemant system
Online reastaurant ordering managemant systemOnline reastaurant ordering managemant system
Online reastaurant ordering managemant system
 
OSMS Slide-Abdul Hakeem.pptx
OSMS Slide-Abdul Hakeem.pptxOSMS Slide-Abdul Hakeem.pptx
OSMS Slide-Abdul Hakeem.pptx
 
Manufacturing and sales management system
Manufacturing and sales management systemManufacturing and sales management system
Manufacturing and sales management system
 
Todd Mitchell - x db crash course
 Todd Mitchell - x db crash course Todd Mitchell - x db crash course
Todd Mitchell - x db crash course
 
Nordic Sugcon xdb crash course
Nordic Sugcon xdb crash courseNordic Sugcon xdb crash course
Nordic Sugcon xdb crash course
 
3.2. Process Order Info (Change the name ComponentModule .docx
3.2. Process Order Info (Change the name ComponentModule .docx3.2. Process Order Info (Change the name ComponentModule .docx
3.2. Process Order Info (Change the name ComponentModule .docx
 
Informatica Cloud Address Validation as a Service
Informatica Cloud Address Validation as a ServiceInformatica Cloud Address Validation as a Service
Informatica Cloud Address Validation as a Service
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development
 
How to Validate Form With Flutter BLoC.pptx
How to Validate Form With Flutter BLoC.pptxHow to Validate Form With Flutter BLoC.pptx
How to Validate Form With Flutter BLoC.pptx
 
STOCK MARKET TIPS
STOCK MARKET TIPSSTOCK MARKET TIPS
STOCK MARKET TIPS
 
Service Provider
Service Provider Service Provider
Service Provider
 
Job portal
Job portalJob portal
Job portal
 
Marketing Cloud - Cross Cloud Architecture - Identity Design - August 2023.pdf
Marketing Cloud - Cross Cloud Architecture - Identity Design - August 2023.pdfMarketing Cloud - Cross Cloud Architecture - Identity Design - August 2023.pdf
Marketing Cloud - Cross Cloud Architecture - Identity Design - August 2023.pdf
 
Time card system
Time card systemTime card system
Time card system
 
E-commerce (System Analysis and Design)
E-commerce (System Analysis and Design)E-commerce (System Analysis and Design)
E-commerce (System Analysis and Design)
 
Refactoring for microservices
Refactoring for microservicesRefactoring for microservices
Refactoring for microservices
 
Eresource nfra erp
Eresource nfra erpEresource nfra erp
Eresource nfra erp
 
An exclusive ERP solution for Project Industry
An exclusive ERP solution for Project IndustryAn exclusive ERP solution for Project Industry
An exclusive ERP solution for Project Industry
 
SAP ALE Idoc
SAP ALE IdocSAP ALE Idoc
SAP ALE Idoc
 

More from Sean Farmar

Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptx
Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptxSean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptx
Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptxSean Farmar
 
DevOps and Microservices Better Together 20190117 DevOps Underground London
DevOps and Microservices Better Together 20190117 DevOps Underground LondonDevOps and Microservices Better Together 20190117 DevOps Underground London
DevOps and Microservices Better Together 20190117 DevOps Underground LondonSean Farmar
 
How Can Monitoring Save Your Bacon - build stuff 2018
How Can Monitoring Save Your Bacon - build stuff 2018How Can Monitoring Save Your Bacon - build stuff 2018
How Can Monitoring Save Your Bacon - build stuff 2018Sean Farmar
 
Monitoring microservices lightning ddd north 20171014
Monitoring microservices lightning ddd north 20171014Monitoring microservices lightning ddd north 20171014
Monitoring microservices lightning ddd north 20171014Sean Farmar
 
Why Service Oriented Architecture DDD North 20151024
Why Service Oriented Architecture DDD North 20151024Why Service Oriented Architecture DDD North 20151024
Why Service Oriented Architecture DDD North 20151024Sean Farmar
 
Why soa DDD South West 6
Why soa DDD South West 6Why soa DDD South West 6
Why soa DDD South West 6Sean Farmar
 
Why SOA Web Summit Dublin 2014
Why SOA Web Summit Dublin 2014 Why SOA Web Summit Dublin 2014
Why SOA Web Summit Dublin 2014 Sean Farmar
 
Turning the light on
Turning the light onTurning the light on
Turning the light onSean Farmar
 
What's new in NServiceBus 4.0 20130718
What's new in NServiceBus 4.0 20130718What's new in NServiceBus 4.0 20130718
What's new in NServiceBus 4.0 20130718Sean Farmar
 
SOA with NServiceBus 20130124
SOA with NServiceBus 20130124SOA with NServiceBus 20130124
SOA with NServiceBus 20130124Sean Farmar
 

More from Sean Farmar (10)

Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptx
Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptxSean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptx
Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptx
 
DevOps and Microservices Better Together 20190117 DevOps Underground London
DevOps and Microservices Better Together 20190117 DevOps Underground LondonDevOps and Microservices Better Together 20190117 DevOps Underground London
DevOps and Microservices Better Together 20190117 DevOps Underground London
 
How Can Monitoring Save Your Bacon - build stuff 2018
How Can Monitoring Save Your Bacon - build stuff 2018How Can Monitoring Save Your Bacon - build stuff 2018
How Can Monitoring Save Your Bacon - build stuff 2018
 
Monitoring microservices lightning ddd north 20171014
Monitoring microservices lightning ddd north 20171014Monitoring microservices lightning ddd north 20171014
Monitoring microservices lightning ddd north 20171014
 
Why Service Oriented Architecture DDD North 20151024
Why Service Oriented Architecture DDD North 20151024Why Service Oriented Architecture DDD North 20151024
Why Service Oriented Architecture DDD North 20151024
 
Why soa DDD South West 6
Why soa DDD South West 6Why soa DDD South West 6
Why soa DDD South West 6
 
Why SOA Web Summit Dublin 2014
Why SOA Web Summit Dublin 2014 Why SOA Web Summit Dublin 2014
Why SOA Web Summit Dublin 2014
 
Turning the light on
Turning the light onTurning the light on
Turning the light on
 
What's new in NServiceBus 4.0 20130718
What's new in NServiceBus 4.0 20130718What's new in NServiceBus 4.0 20130718
What's new in NServiceBus 4.0 20130718
 
SOA with NServiceBus 20130124
SOA with NServiceBus 20130124SOA with NServiceBus 20130124
SOA with NServiceBus 20130124
 

Recently uploaded

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Recently uploaded (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

Successfully Decomposing Your Monolith 20190515 DotNext St. Petersburg

Editor's Notes

  1. Book written by Eric Evens in 2003 Bounded Context is a central pattern in Domain-Driven Design (DDD). It is the focus of DDD's Strategic Design Section which is all about dealing with large models and teams.
  2. Business/product/user driven development Eric Evens – book written in 2003 Bounded Context is a central pattern in Domain-Driven Design (DDD). It is the focus of DDD's Strategic Design Section which is all about dealing with large models and teams.
  3. Martin Fowler – International Speaker and Author (Patterns of Enterprise Application Architecture, Refactoring)
  4. * Information *surrounding* idea which *clarifies meaning*
  5. If you can imagine a point or limit that indicates where two things become different A boundary is basically what limits us. **Autonomy** ** Coupling **
  6. Example…An Ecommerce An Account could mean: * User credentials to log into the program – “User Credentials” * A container of money – “Current Business Account” When we try and implement this in software design we should explicitly separate the 2 concepts Another example can be user: One meaning the actual user interacting with the system “Logged In User” And an Account may be a bank account or a user account, To have a Bounded Context you need a model, and an explicit boundary around it. Many data-driven application with shared database lack a boundary
  7. Stock, wherhouse,