SlideShare a Scribd company logo
1 of 23
Discovering Microservices
PROPRIETARY AND CONFIDENTIAL
Overview
PROPRIETARY AND CONFIDENTIAL
Overview
"microservice architectural style is an approach to developing a
single application as a suite of small services, each running in its
own process and communicating with lightweight mechanisms,
often an HTTP resource API. "
- Martin Fowler and James Lewis
What are Microservices?
PROPRIETARY AND CONFIDENTIAL
Overview
"These services are built around business capabilities and
independently deployable by fully automated deployment
machinery. There is a bare minimum of centralized management
of these services, which may be written in different programming
languages and use different data storage technologies."
- Martin Fowler and James Lewis
What are Microservices?
PROPRIETARY AND CONFIDENTIAL
Overview
"Loosely coupled, service oriented architecture with bounded
context."
- Adrian Cockcroft, formerly with Netflix
What are Microservices?
PROPRIETARY AND CONFIDENTIAL
The best architectures, requirements, and
designs emerge from self-organizing teams.
Overview
6
Loosely Coupled
Business people and developers must
work together daily throughout the
project.
Built Around Business
Simplicity--the art of maximizing the amount of
work not done--is essential.
Service Oriented
Deliver working software frequently, from
a couple of weeks to a couple of months,
with a preference to the shorter
timescale.
Decentralized Management
Agile Principles
PROPRIETARY AND CONFIDENTIAL
Think Bounded Context
PROPRIETARY AND CONFIDENTIAL
Think Bounded Context
8
Avoid Data Modeling First Approaches
• Usually starts with a set of stories or
specs
• Identifies things like nouns and verbs
• Creates data models for nouns with
the actions as properties/methods
• Works from data model to
define technical requirements such as
schema, backend queries, DTOs, etc
PROPRIETARY AND CONFIDENTIAL
Think Bounded Context
9
Avoid Data Modeling First Approaches
• Code becomes increasingly
coupled and intertwined
• Riskier deployments
• Challenges to scaling teams and
codebase
• Managing the complexity
becomes very difficult
PROPRIETARY AND CONFIDENTIAL
Think Bounded Context
10
Loosely coupled services
PROPRIETARY AND CONFIDENTIAL
Product First
PROPRIETARY AND CONFIDENTIAL
Product First
• Ubiquitous Language – common language used by the domain experts, product owners,
developers, etc to discuss the domain in terms of design.
• Bounded Context - "delimits the applicability of a particular model so that team members
have a clear and shared understanding of what has to be consistent and how it relates
to other contexts."
12
Domain Driven Design
PROPRIETARY AND CONFIDENTIAL
Product First
• Work with product owners, domain experts,
engineers, subject matter experts, etc to develop a
ubiquitous language
• Listen for how systems are described to get insight
into that language and bounded contexts
• Any bounded context is a candidate for a
microservice
• Bounded contexts can be divided into sub-domains
in which case there may be multiple microservices.
13
Domain Driven Design
PROPRIETARY AND CONFIDENTIAL
Product First
• Process discovery exercise that is designed
help discuss the flows, constraints, rules,
gaps, etc in a feature or business model.
• Best done with product owners, domain
experts, engineers, subject matter experts,
etc.
• You can use sticky notes and a wall to help
the group illustrate the domain model that is
being discussed
14
Event Storming
PROPRIETARY AND CONFIDENTIAL
Product First
•"As an online-store visitor, I should be able to remove an item from my cart".
• When the request hits the backend, it sounds like the database should be
updated for the user's cart, is that correct?
• Once that happens, what else should take place?
• Ok, so I understand the analytics service should be notified, how does that
happen?
15
Event Storming Example
PROPRIETARY AND CONFIDENTIAL
Product First
• Do we have the endpoint, request, and expected response for the request to
the analytics service?
• Ok, what else needs to happen? ( well, there's also a limit on what
items can be removed from a cart )
• So, we need to check the item that is going to be deleted, how do we know it
can be removed?
16
Event Storming Example
PROPRIETARY AND CONFIDENTIAL
Make Friends with Conway
PROPRIETARY AND CONFIDENTIAL
Make Friends with Conway
"organizations which design systems ... are constrained to produce
designs which are copies of the communication structures of these
organizations."
- Melvin Conway
18
When teams are divided up by
discipline, Conway's law is far more
likely to work against you.
Make Friends with Conway
• Backend team takes too long to
respond to changes so the
frontend team compensates by
building complexity in the
frontend application.
• A database team implements a
host of sql functions to manage
CRUD operations for an
application so that the backend
team can just focus on the
application ( Etsy and
Sprouter, 2007)
19
PROPRIETARY AND CONFIDENTIAL
Make Friends with Conway
20
Working With You
• Teams will become more product/feature
focused than technology focused
• Composing a team of both backend and
database engineers would enable the two
disciplines to work together instead of
compensating for a lack of communication
• Cross-functional teams are positioned to
reduce waste by amplifying
communication, decreasing re-work, and less
idle time waiting.
Summary
Make Friends with Conway
Product First
Think Bounded Context
21
PROPRIETARY AND CONFIDENTIAL
Questions
PROPRIETARY AND CONFIDENTIAL
References
• https://martinfowler.com/articles/microservices.html
• https://learning.acm.org/binaries/content/assets/leaning-center/webinar-
slides/2016/evolutionofmicroservices_webinarslides.pdf
• https://agilemanifesto.org/principles.html
• https://en.wikipedia.org/wiki/Conway%27s_law
• https://www.eventstorming.com/
• https://upload.wikimedia.org/wikipedia/commons/9/99/Event_Storming
ple_process.jpg
• https://upload.wikimedia.org/wikipedia/commons/f/f8/Event_Storming_
aggregate.jpg

More Related Content

Similar to Discovering Microservices

Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesRick Hightower
 
Week 5 Building Digital Capabilites in Workforce and Organization.pptx
Week 5 Building Digital Capabilites in Workforce and Organization.pptxWeek 5 Building Digital Capabilites in Workforce and Organization.pptx
Week 5 Building Digital Capabilites in Workforce and Organization.pptxDibyesh1
 
Discussion About Microservices Architecture
Discussion About Microservices ArchitectureDiscussion About Microservices Architecture
Discussion About Microservices ArchitectureRalph Osmond Rimorin
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018UX Antwerp Meetup
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker XebiaLabs
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCapgemini
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and dockerAlex Ivy
 
From Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical DebtFrom Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical DebtDavid Litvak Bruno
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Lucas Jellema
 
SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)Annie Comp
 
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft MicroservicesChase Aucoin
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureKelly Goetsch
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Rodrigo Antonialli
 
Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices WSO2
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineDevOps.com
 
Container World 2017!
Container World 2017!Container World 2017!
Container World 2017!kgraham32
 

Similar to Discovering Microservices (20)

Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
 
Week 5 Building Digital Capabilites in Workforce and Organization.pptx
Week 5 Building Digital Capabilites in Workforce and Organization.pptxWeek 5 Building Digital Capabilites in Workforce and Organization.pptx
Week 5 Building Digital Capabilites in Workforce and Organization.pptx
 
What are microservices
What are microservicesWhat are microservices
What are microservices
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Discussion About Microservices Architecture
Discussion About Microservices ArchitectureDiscussion About Microservices Architecture
Discussion About Microservices Architecture
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
 
From Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical DebtFrom Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical Debt
 
Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...Business and IT agility through DevOps and microservice architecture powered ...
Business and IT agility through DevOps and microservice architecture powered ...
 
SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)SOA (Service Oriented Architecture)
SOA (Service Oriented Architecture)
 
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft Microservices
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
 
Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices Merging micrservices architecture with SOA Practices
Merging micrservices architecture with SOA Practices
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
Container World 2017!
Container World 2017!Container World 2017!
Container World 2017!
 
Microservices
MicroservicesMicroservices
Microservices
 
20161220 - microservice
20161220 - microservice20161220 - microservice
20161220 - microservice
 

Recently uploaded

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
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.pptxRemote DBA Services
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
"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 ...Zilliz
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
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 FMESafe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
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 FMESafe Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
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 DevelopersWSO2
 
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 Ontologyjohnbeverley2021
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Recently uploaded (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
"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 ...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
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
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Discovering Microservices

  • 3. PROPRIETARY AND CONFIDENTIAL Overview "microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. " - Martin Fowler and James Lewis What are Microservices?
  • 4. PROPRIETARY AND CONFIDENTIAL Overview "These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies." - Martin Fowler and James Lewis What are Microservices?
  • 5. PROPRIETARY AND CONFIDENTIAL Overview "Loosely coupled, service oriented architecture with bounded context." - Adrian Cockcroft, formerly with Netflix What are Microservices?
  • 6. PROPRIETARY AND CONFIDENTIAL The best architectures, requirements, and designs emerge from self-organizing teams. Overview 6 Loosely Coupled Business people and developers must work together daily throughout the project. Built Around Business Simplicity--the art of maximizing the amount of work not done--is essential. Service Oriented Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Decentralized Management Agile Principles
  • 8. PROPRIETARY AND CONFIDENTIAL Think Bounded Context 8 Avoid Data Modeling First Approaches • Usually starts with a set of stories or specs • Identifies things like nouns and verbs • Creates data models for nouns with the actions as properties/methods • Works from data model to define technical requirements such as schema, backend queries, DTOs, etc
  • 9. PROPRIETARY AND CONFIDENTIAL Think Bounded Context 9 Avoid Data Modeling First Approaches • Code becomes increasingly coupled and intertwined • Riskier deployments • Challenges to scaling teams and codebase • Managing the complexity becomes very difficult
  • 10. PROPRIETARY AND CONFIDENTIAL Think Bounded Context 10 Loosely coupled services
  • 12. PROPRIETARY AND CONFIDENTIAL Product First • Ubiquitous Language – common language used by the domain experts, product owners, developers, etc to discuss the domain in terms of design. • Bounded Context - "delimits the applicability of a particular model so that team members have a clear and shared understanding of what has to be consistent and how it relates to other contexts." 12 Domain Driven Design
  • 13. PROPRIETARY AND CONFIDENTIAL Product First • Work with product owners, domain experts, engineers, subject matter experts, etc to develop a ubiquitous language • Listen for how systems are described to get insight into that language and bounded contexts • Any bounded context is a candidate for a microservice • Bounded contexts can be divided into sub-domains in which case there may be multiple microservices. 13 Domain Driven Design
  • 14. PROPRIETARY AND CONFIDENTIAL Product First • Process discovery exercise that is designed help discuss the flows, constraints, rules, gaps, etc in a feature or business model. • Best done with product owners, domain experts, engineers, subject matter experts, etc. • You can use sticky notes and a wall to help the group illustrate the domain model that is being discussed 14 Event Storming
  • 15. PROPRIETARY AND CONFIDENTIAL Product First •"As an online-store visitor, I should be able to remove an item from my cart". • When the request hits the backend, it sounds like the database should be updated for the user's cart, is that correct? • Once that happens, what else should take place? • Ok, so I understand the analytics service should be notified, how does that happen? 15 Event Storming Example
  • 16. PROPRIETARY AND CONFIDENTIAL Product First • Do we have the endpoint, request, and expected response for the request to the analytics service? • Ok, what else needs to happen? ( well, there's also a limit on what items can be removed from a cart ) • So, we need to check the item that is going to be deleted, how do we know it can be removed? 16 Event Storming Example
  • 17. PROPRIETARY AND CONFIDENTIAL Make Friends with Conway
  • 18. PROPRIETARY AND CONFIDENTIAL Make Friends with Conway "organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations." - Melvin Conway 18
  • 19. When teams are divided up by discipline, Conway's law is far more likely to work against you. Make Friends with Conway • Backend team takes too long to respond to changes so the frontend team compensates by building complexity in the frontend application. • A database team implements a host of sql functions to manage CRUD operations for an application so that the backend team can just focus on the application ( Etsy and Sprouter, 2007) 19
  • 20. PROPRIETARY AND CONFIDENTIAL Make Friends with Conway 20 Working With You • Teams will become more product/feature focused than technology focused • Composing a team of both backend and database engineers would enable the two disciplines to work together instead of compensating for a lack of communication • Cross-functional teams are positioned to reduce waste by amplifying communication, decreasing re-work, and less idle time waiting.
  • 21. Summary Make Friends with Conway Product First Think Bounded Context 21
  • 23. PROPRIETARY AND CONFIDENTIAL References • https://martinfowler.com/articles/microservices.html • https://learning.acm.org/binaries/content/assets/leaning-center/webinar- slides/2016/evolutionofmicroservices_webinarslides.pdf • https://agilemanifesto.org/principles.html • https://en.wikipedia.org/wiki/Conway%27s_law • https://www.eventstorming.com/ • https://upload.wikimedia.org/wikipedia/commons/9/99/Event_Storming ple_process.jpg • https://upload.wikimedia.org/wikipedia/commons/f/f8/Event_Storming_ aggregate.jpg