SlideShare a Scribd company logo
1 of 57
MICROSERVICES
Today’s Tools & Practices meet Domain-Driven Design
!
Trivento Spring Camp | March 27th, 2015 | Dennis Traub | @DTraub
- A sphere of knowledge, influence, or activity -
- What an organisation does, and the world it does it in -
DOMAIN
- A system of abstractions describing selected aspects of a Domain -
- Used to solve problems related to that Domain -
MODEL
SIT DOWN WITH THE EXPERTS & LISTEN
Customer
type = shipping
Address
type = billing
Address
Order
Line Item
Line Item
Line Item
Product
Product
Product
type = billing
Address
Order
Invoice
Vendor
http://wikimediafoundation.org/wiki/File:Commodore-VIC-20-FL.jpg
http://wikimediafoundation.org/wiki/File:Commodore-VIC-20-FL.jpghttp://backgrounds.1nova.com/wp-content/uploads/sites/27/2015/02/One-Ring-to-Rule-them-All.jpg
ONE MODEL TO RULE THEM ALL
We don’t model reality,
we model useful abstractions
Rule # 1
- A language structured around the Domain Model -
- Used by all team members and throughout the code -
UBIQUITOUS LANGUAGE
Customer
type = shipping
Address
type = billing
Address
Order
Line Item
Line Item
Line Item
Product
Product
Product
type = billing
Address
Order
Invoice
Vendor
Customer
Customer
Marketing
Target Group
Marketing
Website
Target Group
Visitor
Marketing
Website
Shopping Cart
Target Group
Visitor
Buyer
Marketing
Website
Recipient
Shopping Cart
Shipping
Target Group
Visitor
Buyer
Marketing
Website
Recipient
Shopping Cart
Shipping
Hotline
Target Group
Complainant
Visitor
Buyer
Marketing
Website
Recipient
Shopping Cart
Shipping
Hotline
Target Group
Complainant
Visitor
Buyer
Purchasing
Customer
- An explicit boundary within which a Domain Model exists -
- Inside, all terms have a specific meaning -
- They are part of the Ubiquitous Language -
BOUNDED CONTEXT
We don’t build a model

that works for everyone
Rule # 2
KEY ATTRIBUTES OF A BOUNDED CONTEXT
KEY ATTRIBUTES OF A BOUNDED CONTEXT
High Cohesion
KEY ATTRIBUTES OF A BOUNDED CONTEXT
High Cohesion
Loose Coupling
KEY ATTRIBUTES OF A BOUNDED CONTEXT
High Cohesion
Loose Coupling
Represents Business Capability
KEY ATTRIBUTES OF A BOUNDED CONTEXT
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
Customer
Marketing
Website
Recipient
Shopping Cart
Shipping
Hotline
Target Group
Complainant
Visitor
Buyer
Purchasing
Customer
Customer
Marketing
Website
Recipient
Shopping Cart
Shipping
Hotline
Target Group
Complainant
Visitor
Buyer
Purchasing
Customer
Business Logic
Data Access
Presentation
our “Architecture”
Business Logic
Data Access
Presentation
our “Architecture”
http://wikimediafoundation.org/wiki/File:Commodore-VIC-20-FL.jpghttp://backgrounds.1nova.com/wp-content/uploads/sites/27/2015/02/One-Ring-to-Rule-them-All.jpg
ONE ARCHITECTURE TO RULE THEM ALL
We don’t design a

one-size-fits-all architecture
Rule # 3
KEY ATTRIBUTES OF A BOUNDED CONTEXT
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
+
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
+
Individual Persistence
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
+
Individual Persistence
Individual Tech Stacks
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
+
Individual Persistence
Individual Tech Stacks
Individual Deployability
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
+
Individual Persistence
Individual Tech Stacks
Individual Deployability
Individual Replaceability
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
+
Individual Persistence
Individual Tech Stacks
Individual Deployability
Individual Replaceability
Individual Scalability
KEY ATTRIBUTES OF A MICROSERVICE
High Cohesion
Loose Coupling
Represents Business Capability
Context-specific Model
+
Individual Persistence
Individual Tech Stacks
Individual Deployability
Individual Replaceability
Individual Scalability
Can Fail Individually
21
21
FREE CHOICE OF ARCHITECTURAL STYLE
21
N-Layer CQRS
Forms
over
Data
Off-the-ShelfLambda
21
FREE CHOICE OF PERSISTENCE MECHANISM
21
21
FREE CHOICE OF LANGUAGE
21
We don’t model reality,
we model useful abstractions
Rule # 1
We don’t build a model
that works for everyone
Rule # 2
We don’t design a

one-size-fits-all architecture
Rule # 3
WHAT MICROSERVICES ARE ABOUT
For questions or suggestions:
!
Twitter: @DTraub
dtraub@thoughtworks.com
THANK YOU

More Related Content

Similar to DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015

VMware IT Academy Program
VMware IT Academy Program VMware IT Academy Program
VMware IT Academy Program
EMC
 
Cloud forum-lessons-learned-20110405c-final
Cloud forum-lessons-learned-20110405c-finalCloud forum-lessons-learned-20110405c-final
Cloud forum-lessons-learned-20110405c-final
Mauricio Godoy
 
EvansData_DevRel_2016-DevOps
EvansData_DevRel_2016-DevOpsEvansData_DevRel_2016-DevOps
EvansData_DevRel_2016-DevOps
Larry McDonough
 

Similar to DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015 (20)

VCE_value_brochure
VCE_value_brochureVCE_value_brochure
VCE_value_brochure
 
JavaTM – A Strategic Foundation for Your eOrganization
JavaTM – A Strategic Foundation for Your eOrganizationJavaTM – A Strategic Foundation for Your eOrganization
JavaTM – A Strategic Foundation for Your eOrganization
 
Juan Jose Juarez. Simplivity. Cómo optimizar su infraestructura virtual. Sema...
Juan Jose Juarez. Simplivity. Cómo optimizar su infraestructura virtual. Sema...Juan Jose Juarez. Simplivity. Cómo optimizar su infraestructura virtual. Sema...
Juan Jose Juarez. Simplivity. Cómo optimizar su infraestructura virtual. Sema...
 
DAT - Web Development and Design
DAT - Web Development and DesignDAT - Web Development and Design
DAT - Web Development and Design
 
Connected Architecture Fabric Creating a Connected World
Connected Architecture Fabric Creating a Connected WorldConnected Architecture Fabric Creating a Connected World
Connected Architecture Fabric Creating a Connected World
 
A Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial InstitutionsA Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial Institutions
 
Navigating the Complexity of Distributed Microservices across AWS, Azure, and...
Navigating the Complexity of Distributed Microservices across AWS, Azure, and...Navigating the Complexity of Distributed Microservices across AWS, Azure, and...
Navigating the Complexity of Distributed Microservices across AWS, Azure, and...
 
VMware IT Academy Program
VMware IT Academy Program VMware IT Academy Program
VMware IT Academy Program
 
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 20091 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009
 
Gerry Miller Representative Projects
Gerry Miller Representative ProjectsGerry Miller Representative Projects
Gerry Miller Representative Projects
 
How your very large databases can work in the cloud computing world?
How your very large databases can work in the cloud computing world?How your very large databases can work in the cloud computing world?
How your very large databases can work in the cloud computing world?
 
Cloud forum-lessons-learned-20110405c-final
Cloud forum-lessons-learned-20110405c-finalCloud forum-lessons-learned-20110405c-final
Cloud forum-lessons-learned-20110405c-final
 
Addendum 2016-02-08
Addendum 2016-02-08Addendum 2016-02-08
Addendum 2016-02-08
 
Evans Data DevRel 2016
Evans Data DevRel 2016 Evans Data DevRel 2016
Evans Data DevRel 2016
 
EvansData_DevRel_2016-DevOps
EvansData_DevRel_2016-DevOpsEvansData_DevRel_2016-DevOps
EvansData_DevRel_2016-DevOps
 
2011-08-10 In-Q-Tel Technology Focus Day, Trends & Observations in Open Sourc...
2011-08-10 In-Q-Tel Technology Focus Day, Trends & Observations in Open Sourc...2011-08-10 In-Q-Tel Technology Focus Day, Trends & Observations in Open Sourc...
2011-08-10 In-Q-Tel Technology Focus Day, Trends & Observations in Open Sourc...
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
 
Bem2034
Bem2034Bem2034
Bem2034
 
Tim Jones – CTO, Trader Media
Tim Jones – CTO, Trader MediaTim Jones – CTO, Trader Media
Tim Jones – CTO, Trader Media
 
Overview of Sponsor Sessions in Berlin
Overview of Sponsor Sessions in BerlinOverview of Sponsor Sessions in Berlin
Overview of Sponsor Sessions in Berlin
 

More from Dennis Traub

Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)
Dennis Traub
 
CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2
Dennis Traub
 
CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011
Dennis Traub
 

More from Dennis Traub (11)

Application Integration Patterns (not only) for Microservices
Application Integration Patterns (not only) for MicroservicesApplication Integration Patterns (not only) for Microservices
Application Integration Patterns (not only) for Microservices
 
Serverless SecOps Automation on AWS at AWS UG Krakow, Poland
Serverless SecOps Automation on AWS at AWS UG Krakow, PolandServerless SecOps Automation on AWS at AWS UG Krakow, Poland
Serverless SecOps Automation on AWS at AWS UG Krakow, Poland
 
Serverless Security Automation on AWS - Hamburg AWS User Group
Serverless Security Automation on AWS - Hamburg AWS User GroupServerless Security Automation on AWS - Hamburg AWS User Group
Serverless Security Automation on AWS - Hamburg AWS User Group
 
Cloud ist keine Strategie - Keynote des AWS Cloud Day, Solingen
Cloud ist keine Strategie - Keynote des AWS Cloud Day, SolingenCloud ist keine Strategie - Keynote des AWS Cloud Day, Solingen
Cloud ist keine Strategie - Keynote des AWS Cloud Day, Solingen
 
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017
 
Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)
 
An Introduction to CQRS
An Introduction to CQRSAn Introduction to CQRS
An Introduction to CQRS
 
From DDD to CQRS
From DDD to CQRSFrom DDD to CQRS
From DDD to CQRS
 
Strategischer Anwendungsentwurf mit Domain-Driven Design
Strategischer Anwendungsentwurf mit Domain-Driven DesignStrategischer Anwendungsentwurf mit Domain-Driven Design
Strategischer Anwendungsentwurf mit Domain-Driven Design
 
CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2
 
CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015