SlideShare a Scribd company logo
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 Microservices
Rick 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.pptx
Dibyesh1
 
What are microservices
What are microservicesWhat are microservices
What are microservices
Krunalkumar Rajdip
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Alessandro Giorgetti
 
Discussion About Microservices Architecture
Discussion About Microservices ArchitectureDiscussion About Microservices Architecture
Discussion About Microservices Architecture
Ralph 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 2018
UX 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 wal
Capgemini
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
Alex 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 Debt
David 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 Microservices
Chase Aucoin
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
Kelly Goetsch
 
Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
Rodrigo 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 Pipeline
DevOps.com
 
Container World 2017!
Container World 2017!Container World 2017!
Container World 2017!
kgraham32
 
Microservices
MicroservicesMicroservices
Microservices
Meysam Javadi
 
20161220 - microservice
20161220 - microservice20161220 - microservice
20161220 - microservice
Jamie (Taka) Wang
 

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

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 

Recently uploaded (20)

HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 

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