SlideShare a Scribd company logo
1 of 31
1
Heuristics for Service Boundaries
Heuristics for Service Boundaries
Erich Eichinger, Lead Consultant OpenCredo
@oakinger
2
Heuristics for Service Boundaries
About
• Lead Consultant at OpenCredo
• Much longer in Software Delivery than I am willing to admit
• Hands on software development consultancy
• Cloud Native; Data Engineering & ML
@oakinger
3
Heuristics for Service Boundaries
Why am I here?
• Wrote blog post: https://opencredo.com/identify-service-boundary-
heuristics/
• “Things I wish someone had told me”
• share my thoughts around those heuristics
@oakinger
4
Heuristics for Service Boundaries
Where am I coming from?
• Architecting, Development and/or Hosting of ~1000 customer
websites
• Domains: Embedded, News, Online Betting, Sports, Banking,
Automotive, Public Sector, ...
• “Ate my own dog-food”
@oakinger
5
Heuristics for Service Boundaries
A naive approach... (don’t try this at home)
... unless you can make sure you’ll be far away when the first change
request comes in...
@oakinger
6
Heuristics for Service Boundaries
Traditional Practices
• “Use noun phrase technique”
for domain analysis
• add some UI/Business/Data
Layer
@oakinger
7
Heuristics for Service Boundaries
Traditional Processes
@oakinger
8
Heuristics for Service Boundaries
... and you get 🙀
@oakinger
Customer
Service
Customer UI
Shopping Cart
Service
Shopping Cart UI
Address Service
Address Data
Access
User Profile Data
Access
UI
Biz
Data
9
Heuristics for Service Boundaries
What are (some of) the problems?
• Boxes look good, but...
• Coordination between Teams exponential
• Ignorance of Organizational Context (Silos)
• Change Requests ripple through
• Archi-Tectonic Drift
@oakinger
10
Heuristics for Service Boundaries
Real World Service-Orientation
• “Bob books a Vacation”:
– https://dannorth.net/classic-soa/
• “Starbucks doesn’t use 2-phase commit”
– https://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html
@oakinger
11
Heuristics for Service Boundaries
Service Attributes
• Independent delivery pipeline (planning, implementation,
deployment)
• Owned by one team
• Decentralized governance
• Independent Data-Storage
• Ownership of Communication Interfaces
• Clear Terminology (aka “ubiquitous language”)
• If user-facing, it comes with its own UI
@oakinger
12
Heuristics for Service Boundaries
Forces & Dimensions
• Multiple forces drive architectural decision making
@oakinger
13
Heuristics for Service Boundaries
Coupling: Failure Domains
https://twitter.com/chimeracoder/status/1047154302375141377?s=21
@oakinger
14
Heuristics for Service Boundaries
Coupling: Other
• Data Structures and -Types (Events, Records)
• Deep Links/URIs
• Synchronous APIs (both, syntax *and* semantics)
• Distributed Transactions
@oakinger
15
Heuristics for Service Boundaries
Domain Model Cohesion
• “unified view of customer”
@oakinger
Customer Service
16
Heuristics for Service Boundaries
Domain Model Cohesion (II)
• “Customer” in Accounting is very different from “Customer” in
Support
• Leads to unrelated changes in the same service
=> Bounded Context (Domain Driven Design)
@oakinger
17
Heuristics for Service Boundaries
Stable vs. Unstable
• Over time some services will mature and stabilize
• Other services are under constant change or may even get retired
=> Isolate Stable from Unstable services
@oakinger
18
Heuristics for Service Boundaries
Load
• What if a batch process hits your API?
=> Instead of hardening the entire service, better isolate/specialize
high frequency/large payload consumer API from others
@oakinger
19
Heuristics for Service Boundaries
Organisation
• Technical Optimum can be very different from organisational
Optimum:
=> Large Change, but Team ”WeChat” stays independent!
@oakinger
SSO Service
WeChat
Integration
Small
change
Large
change
vs
20
Heuristics for Service Boundaries
Erosion: “what’s your unit/scope of change?”
• Changes ripple across multiple
services
Death by coordination meetings
Architecture erodes by teams taking
shortcuts
@oakinger
21
Heuristics for Service Boundaries
Split at Process Hand-Offs
• Changes often affect process flows
• UI+Biz+Data = Self Contained
Systems
@oakinger
Browse
Products
Add to
Cart
Configure
Product A
Checkout
Configure
Product B
Configure
Product C
22
Heuristics for Service Boundaries
Operation
• Every service comes with overhead
– Deployment
– Versioning
– UI
– Monitoring
– Tracing
– Resiliency
• Different Teams may have different maturity/skillsets
@oakinger
Checkout
Service
Checkout
Service
Checkout
Service
Profile
Service
Checkout
Service
Browse
Product
Service
23
Heuristics for Service Boundaries
Security
• Every service increases attack surface
@oakinger
One Big
Service
Profile
Service
Profile
Service
Profile
Service
Profile
Service
vs
24
Heuristics for Service Boundaries
There’s more...
• Data Location
• Security Constraints
• Budget Owner
• ...
@oakinger
25
Heuristics for Service Boundaries
Most of all: time!
• Time may invalidate underlying assumptions
– functions move around
– service retirement
• We learn over time
– Example Batch API overload
• Learning & Response requires agility on all levels
– Reduce entry/exit costs for services (e.g. with containers)
– Observability
@oakinger
26
Heuristics for Service Boundaries
“Begin with the End (&Cost) in Mind”
• Where does the organization stand right now?
– It takes time to digest changes
• what do we want to achieve/optimize for?
– Have a clear vision
• define measurable goal(s)
– “Fitness Functions” (Neal Ford, “Building Evolutionary Architectures”)
• Goals and Optima are highly contextual and come with costs!
– “More services” is an economic question
@oakinger
27
Heuristics for Service Boundaries
Example Goals
• Isolate Critical Modules
• More deployments/[day,week,month]
– SkyScanner Talk “10k deploys a day”
• Parallelize Delivery
– But remember Amdahl’s law
@oakinger
28
Heuristics for Service Boundaries
Enable Change
• Consider Service End-Of-Life
– How can a service be retired?
• Reduce entry/exit costs for services
– Make dealing with overhead “cheaper”
– Ultimately serverless
• Observability
@oakinger
29
Heuristics for Service Boundaries
Co-Evolve
• Culture
• Business
• Architecture
• Operations
• Development
• Security
They all influence and enable each other – can’t have 100 services
without low-cost deployment pipeline and org culture
@oakinger
30
Heuristics for Service Boundaries
Tips
• Start small (extreme: “Monolith first”)
• no right way to decompose - question of economy/fitness function
– Bounded Context and Process Flows are a good start
• observability first
• make principles & decisions easy to communicate & understand
– have peers challenge your ideas
• “continuous architecture” (aka “evolutionary”)
– Grow architecture, co-evolve with culture: biz, arch, dev, sec & ops
– re-evaluate assumptions, reduce entry/exit costs for services
@oakinger
31
Heuristics for Service Boundaries
Thanks!
Catch me on Twitter @oakinger
Blog with catalogue of heuristics (and lots of related links):
https://opencredo.com/identify-service-boundary-heuristics/
@oakinger

More Related Content

What's hot

Monolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconMonolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconChristopher Grant
 
Become More Agile By Building The Right Software Architecture
Become More Agile By Building The Right Software ArchitectureBecome More Agile By Building The Right Software Architecture
Become More Agile By Building The Right Software ArchitectureBelatrix Software
 
WSO2Con EU 2016: How WSO2 Products Facilitate the Digital Economy in the Tel...
WSO2Con EU 2016: How WSO2 Products Facilitate the Digital Economy  in the Tel...WSO2Con EU 2016: How WSO2 Products Facilitate the Digital Economy  in the Tel...
WSO2Con EU 2016: How WSO2 Products Facilitate the Digital Economy in the Tel...WSO2
 
DevOps Introduction - AWS Boston Meetup - AWS Presentation
DevOps Introduction - AWS Boston Meetup - AWS PresentationDevOps Introduction - AWS Boston Meetup - AWS Presentation
DevOps Introduction - AWS Boston Meetup - AWS PresentationZenoss
 
20220205 Getting started with power bi
20220205 Getting started with power bi20220205 Getting started with power bi
20220205 Getting started with power biAroh Shukla
 
11. Transforming Recruitment at CMS UK
11. Transforming Recruitment at CMS UK11. Transforming Recruitment at CMS UK
11. Transforming Recruitment at CMS UKCedar Consulting
 
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR AnalyticsCedar Consulting
 
Tips for your on-premises cloud or hybrid migration
Tips for your on-premises cloud or hybrid migrationTips for your on-premises cloud or hybrid migration
Tips for your on-premises cloud or hybrid migrationRoberto Vazquez Delgado
 
4. Sarah Hurley & Ranju Gawande - 9.2 What is There If I Am Not On It
4. Sarah Hurley & Ranju Gawande - 9.2 What is There If I Am Not On It4. Sarah Hurley & Ranju Gawande - 9.2 What is There If I Am Not On It
4. Sarah Hurley & Ranju Gawande - 9.2 What is There If I Am Not On ItCedar Consulting
 
20. Marc Weintraub - PeopleSoft Keynote - The PeopleSoft Investment Strategy
20. Marc Weintraub - PeopleSoft Keynote - The PeopleSoft Investment Strategy20. Marc Weintraub - PeopleSoft Keynote - The PeopleSoft Investment Strategy
20. Marc Weintraub - PeopleSoft Keynote - The PeopleSoft Investment StrategyCedar Consulting
 
WSO2 Con EU 2016 - Building Awesome Personal Dashboards With WSO2 Dashboard S...
WSO2 Con EU 2016 - Building Awesome Personal Dashboards With WSO2 Dashboard S...WSO2 Con EU 2016 - Building Awesome Personal Dashboards With WSO2 Dashboard S...
WSO2 Con EU 2016 - Building Awesome Personal Dashboards With WSO2 Dashboard S...s_rajan_sinthu
 
Qlik-16x9-CorpExecutive-Presentation_Mar2016
Qlik-16x9-CorpExecutive-Presentation_Mar2016Qlik-16x9-CorpExecutive-Presentation_Mar2016
Qlik-16x9-CorpExecutive-Presentation_Mar2016Carson Walker
 
5 Trends that Will Shape The Future of the Mobile Enterprise
5 Trends that Will Shape The Future of the Mobile Enterprise5 Trends that Will Shape The Future of the Mobile Enterprise
5 Trends that Will Shape The Future of the Mobile Enterprisekidozen
 
Top Devops bottlenecks, constraints and best practices
Top Devops bottlenecks, constraints and best practicesTop Devops bottlenecks, constraints and best practices
Top Devops bottlenecks, constraints and best practicesMike Kavis
 
QlikView / Qlik Sense (ver. EN)
QlikView / Qlik Sense (ver. EN)QlikView / Qlik Sense (ver. EN)
QlikView / Qlik Sense (ver. EN)BPX SA
 
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014Zivtech, LLC
 
Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data WarehousingDavide Mauri
 
Content Engineering and The Internet of “Smart” Things
Content Engineering and The Internet of “Smart” ThingsContent Engineering and The Internet of “Smart” Things
Content Engineering and The Internet of “Smart” Thingsdclsocialmedia
 

What's hot (20)

Monolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconMonolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly Oscon
 
Become More Agile By Building The Right Software Architecture
Become More Agile By Building The Right Software ArchitectureBecome More Agile By Building The Right Software Architecture
Become More Agile By Building The Right Software Architecture
 
WSO2Con EU 2016: How WSO2 Products Facilitate the Digital Economy in the Tel...
WSO2Con EU 2016: How WSO2 Products Facilitate the Digital Economy  in the Tel...WSO2Con EU 2016: How WSO2 Products Facilitate the Digital Economy  in the Tel...
WSO2Con EU 2016: How WSO2 Products Facilitate the Digital Economy in the Tel...
 
Presentation deck neudesic
Presentation deck neudesicPresentation deck neudesic
Presentation deck neudesic
 
DevOps Introduction - AWS Boston Meetup - AWS Presentation
DevOps Introduction - AWS Boston Meetup - AWS PresentationDevOps Introduction - AWS Boston Meetup - AWS Presentation
DevOps Introduction - AWS Boston Meetup - AWS Presentation
 
20220205 Getting started with power bi
20220205 Getting started with power bi20220205 Getting started with power bi
20220205 Getting started with power bi
 
11. Transforming Recruitment at CMS UK
11. Transforming Recruitment at CMS UK11. Transforming Recruitment at CMS UK
11. Transforming Recruitment at CMS UK
 
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
 
Tips for your on-premises cloud or hybrid migration
Tips for your on-premises cloud or hybrid migrationTips for your on-premises cloud or hybrid migration
Tips for your on-premises cloud or hybrid migration
 
4. Sarah Hurley & Ranju Gawande - 9.2 What is There If I Am Not On It
4. Sarah Hurley & Ranju Gawande - 9.2 What is There If I Am Not On It4. Sarah Hurley & Ranju Gawande - 9.2 What is There If I Am Not On It
4. Sarah Hurley & Ranju Gawande - 9.2 What is There If I Am Not On It
 
20. Marc Weintraub - PeopleSoft Keynote - The PeopleSoft Investment Strategy
20. Marc Weintraub - PeopleSoft Keynote - The PeopleSoft Investment Strategy20. Marc Weintraub - PeopleSoft Keynote - The PeopleSoft Investment Strategy
20. Marc Weintraub - PeopleSoft Keynote - The PeopleSoft Investment Strategy
 
WSO2 Con EU 2016 - Building Awesome Personal Dashboards With WSO2 Dashboard S...
WSO2 Con EU 2016 - Building Awesome Personal Dashboards With WSO2 Dashboard S...WSO2 Con EU 2016 - Building Awesome Personal Dashboards With WSO2 Dashboard S...
WSO2 Con EU 2016 - Building Awesome Personal Dashboards With WSO2 Dashboard S...
 
Qlik-16x9-CorpExecutive-Presentation_Mar2016
Qlik-16x9-CorpExecutive-Presentation_Mar2016Qlik-16x9-CorpExecutive-Presentation_Mar2016
Qlik-16x9-CorpExecutive-Presentation_Mar2016
 
5 Trends that Will Shape The Future of the Mobile Enterprise
5 Trends that Will Shape The Future of the Mobile Enterprise5 Trends that Will Shape The Future of the Mobile Enterprise
5 Trends that Will Shape The Future of the Mobile Enterprise
 
Top Devops bottlenecks, constraints and best practices
Top Devops bottlenecks, constraints and best practicesTop Devops bottlenecks, constraints and best practices
Top Devops bottlenecks, constraints and best practices
 
QlikView / Qlik Sense (ver. EN)
QlikView / Qlik Sense (ver. EN)QlikView / Qlik Sense (ver. EN)
QlikView / Qlik Sense (ver. EN)
 
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
Open Source isn't Just Good, it's Good Business - DrupalCamp Colorado 2014
 
Creating a Documentation Portal
Creating a Documentation PortalCreating a Documentation Portal
Creating a Documentation Portal
 
Agile Data Warehousing
Agile Data WarehousingAgile Data Warehousing
Agile Data Warehousing
 
Content Engineering and The Internet of “Smart” Things
Content Engineering and The Internet of “Smart” ThingsContent Engineering and The Internet of “Smart” Things
Content Engineering and The Internet of “Smart” Things
 

Similar to Heuristics for Identifying Service Boundaries

2 speed it powered by microsoft azure
2 speed it powered by microsoft azure2 speed it powered by microsoft azure
2 speed it powered by microsoft azureMichael Stephenson
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Katherine Golovinova
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at ScaleRandy Shoup
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisVMware Tanzu
 
Going Global with Itoc and AWS
Going Global with Itoc and AWS Going Global with Itoc and AWS
Going Global with Itoc and AWS Mark Promnitz
 
2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and MinecraftBizTalk360
 
2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and MinecraftSriram Hariharan
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxapidays
 
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenNCCOMMS
 
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Callon Campbell
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays
 
Effective Microservices In a Data-centric World
Effective Microservices In a Data-centric WorldEffective Microservices In a Data-centric World
Effective Microservices In a Data-centric WorldRandy Shoup
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitectureAshwini Kuntamukkala
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Randy Shoup
 
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013Emtec Inc.
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYCChristian Posta
 
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...apidays
 

Similar to Heuristics for Identifying Service Boundaries (20)

2 speed it powered by microsoft azure
2 speed it powered by microsoft azure2 speed it powered by microsoft azure
2 speed it powered by microsoft azure
 
Super charged prototyping
Super charged prototypingSuper charged prototyping
Super charged prototyping
 
Choosing and Using Cloud Services with SharePoint
Choosing and Using Cloud Services with SharePointChoosing and Using Cloud Services with SharePoint
Choosing and Using Cloud Services with SharePoint
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at Scale
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
 
Going Global with Itoc and AWS
Going Global with Itoc and AWS Going Global with Itoc and AWS
Going Global with Itoc and AWS
 
2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft
 
2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
 
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
 
Effective Microservices In a Data-centric World
Effective Microservices In a Data-centric WorldEffective Microservices In a Data-centric World
Effective Microservices In a Data-centric World
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015
 
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
Webinar: Ten Ways to Enhance Your Salesforce.com Application in 2013
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYC
 
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
 

More from OpenCredo

Webinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringWebinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringOpenCredo
 
MuCon 2019: Exploring Your Microservices Architecture Through Network Science...
MuCon 2019: Exploring Your Microservices Architecture Through Network Science...MuCon 2019: Exploring Your Microservices Architecture Through Network Science...
MuCon 2019: Exploring Your Microservices Architecture Through Network Science...OpenCredo
 
Goto Chicago; Journeys To Cloud Native Architecture: Sun, Sea And Emergencies...
Goto Chicago; Journeys To Cloud Native Architecture: Sun, Sea And Emergencies...Goto Chicago; Journeys To Cloud Native Architecture: Sun, Sea And Emergencies...
Goto Chicago; Journeys To Cloud Native Architecture: Sun, Sea And Emergencies...OpenCredo
 
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki Watt
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki WattJourneys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki Watt
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki WattOpenCredo
 
Machine Learning Game Changer for IT - Maartens Lourens
Machine Learning Game Changer for IT - Maartens LourensMachine Learning Game Changer for IT - Maartens Lourens
Machine Learning Game Changer for IT - Maartens LourensOpenCredo
 
Kafka Summit 2018: A Journey Building Kafka Connectors - Pegerto Fernandez
Kafka Summit 2018: A Journey Building Kafka Connectors - Pegerto FernandezKafka Summit 2018: A Journey Building Kafka Connectors - Pegerto Fernandez
Kafka Summit 2018: A Journey Building Kafka Connectors - Pegerto FernandezOpenCredo
 
DevOpsCon Berlin 2017: Project Management from Stone Age to DevOps By Antoni...
DevOpsCon Berlin 2017: Project Management from Stone Age to DevOps  By Antoni...DevOpsCon Berlin 2017: Project Management from Stone Age to DevOps  By Antoni...
DevOpsCon Berlin 2017: Project Management from Stone Age to DevOps By Antoni...OpenCredo
 
Hashidays London 2017 - Evolving your Infrastructure with Terraform By Nicki ...
Hashidays London 2017 - Evolving your Infrastructure with Terraform By Nicki ...Hashidays London 2017 - Evolving your Infrastructure with Terraform By Nicki ...
Hashidays London 2017 - Evolving your Infrastructure with Terraform By Nicki ...OpenCredo
 
Succeeding with DevOps Transformation - Rafal Gancarz
Succeeding with DevOps Transformation - Rafal GancarzSucceeding with DevOps Transformation - Rafal Gancarz
Succeeding with DevOps Transformation - Rafal GancarzOpenCredo
 
Progscon 2017: Serverless Architectures - Rafal Gancarz
Progscon 2017: Serverless Architectures - Rafal GancarzProgscon 2017: Serverless Architectures - Rafal Gancarz
Progscon 2017: Serverless Architectures - Rafal GancarzOpenCredo
 
QCON London 2017 - Monitoring Serverless Architectures by Rafal Gancarz
QCON London 2017 - Monitoring Serverless Architectures by Rafal GancarzQCON London 2017 - Monitoring Serverless Architectures by Rafal Gancarz
QCON London 2017 - Monitoring Serverless Architectures by Rafal GancarzOpenCredo
 
Voxxed Bristol 2017 - From C to Q, one event at a time: Event Sourcing illust...
Voxxed Bristol 2017 - From C to Q, one event at a time: Event Sourcing illust...Voxxed Bristol 2017 - From C to Q, one event at a time: Event Sourcing illust...
Voxxed Bristol 2017 - From C to Q, one event at a time: Event Sourcing illust...OpenCredo
 
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt LongLondon Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt LongOpenCredo
 
ServerlessConf: Serverless for the Enterprise - Rafal Gancarz
ServerlessConf: Serverless for the Enterprise - Rafal GancarzServerlessConf: Serverless for the Enterprise - Rafal Gancarz
ServerlessConf: Serverless for the Enterprise - Rafal GancarzOpenCredo
 
O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...
O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...
O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...OpenCredo
 
Haufe #msaday - The Actor model: an alternative approach to concurrency By Lo...
Haufe #msaday - The Actor model: an alternative approach to concurrency By Lo...Haufe #msaday - The Actor model: an alternative approach to concurrency By Lo...
Haufe #msaday - The Actor model: an alternative approach to concurrency By Lo...OpenCredo
 
Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant
Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant
Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant OpenCredo
 
Haufe #msaday - Building a Microservice Ecosystem by Daniel Bryant
Haufe #msaday - Building a Microservice Ecosystem by Daniel Bryant Haufe #msaday - Building a Microservice Ecosystem by Daniel Bryant
Haufe #msaday - Building a Microservice Ecosystem by Daniel Bryant OpenCredo
 
A Visual Introduction to Event Sourcing and CQRS by Lorenzo Nicora
A Visual Introduction to Event Sourcing and CQRS by Lorenzo NicoraA Visual Introduction to Event Sourcing and CQRS by Lorenzo Nicora
A Visual Introduction to Event Sourcing and CQRS by Lorenzo NicoraOpenCredo
 
Reactive Microservices By Lorenzo Nicora
Reactive Microservices By Lorenzo NicoraReactive Microservices By Lorenzo Nicora
Reactive Microservices By Lorenzo NicoraOpenCredo
 

More from OpenCredo (20)

Webinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringWebinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform Engineering
 
MuCon 2019: Exploring Your Microservices Architecture Through Network Science...
MuCon 2019: Exploring Your Microservices Architecture Through Network Science...MuCon 2019: Exploring Your Microservices Architecture Through Network Science...
MuCon 2019: Exploring Your Microservices Architecture Through Network Science...
 
Goto Chicago; Journeys To Cloud Native Architecture: Sun, Sea And Emergencies...
Goto Chicago; Journeys To Cloud Native Architecture: Sun, Sea And Emergencies...Goto Chicago; Journeys To Cloud Native Architecture: Sun, Sea And Emergencies...
Goto Chicago; Journeys To Cloud Native Architecture: Sun, Sea And Emergencies...
 
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki Watt
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki WattJourneys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki Watt
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki Watt
 
Machine Learning Game Changer for IT - Maartens Lourens
Machine Learning Game Changer for IT - Maartens LourensMachine Learning Game Changer for IT - Maartens Lourens
Machine Learning Game Changer for IT - Maartens Lourens
 
Kafka Summit 2018: A Journey Building Kafka Connectors - Pegerto Fernandez
Kafka Summit 2018: A Journey Building Kafka Connectors - Pegerto FernandezKafka Summit 2018: A Journey Building Kafka Connectors - Pegerto Fernandez
Kafka Summit 2018: A Journey Building Kafka Connectors - Pegerto Fernandez
 
DevOpsCon Berlin 2017: Project Management from Stone Age to DevOps By Antoni...
DevOpsCon Berlin 2017: Project Management from Stone Age to DevOps  By Antoni...DevOpsCon Berlin 2017: Project Management from Stone Age to DevOps  By Antoni...
DevOpsCon Berlin 2017: Project Management from Stone Age to DevOps By Antoni...
 
Hashidays London 2017 - Evolving your Infrastructure with Terraform By Nicki ...
Hashidays London 2017 - Evolving your Infrastructure with Terraform By Nicki ...Hashidays London 2017 - Evolving your Infrastructure with Terraform By Nicki ...
Hashidays London 2017 - Evolving your Infrastructure with Terraform By Nicki ...
 
Succeeding with DevOps Transformation - Rafal Gancarz
Succeeding with DevOps Transformation - Rafal GancarzSucceeding with DevOps Transformation - Rafal Gancarz
Succeeding with DevOps Transformation - Rafal Gancarz
 
Progscon 2017: Serverless Architectures - Rafal Gancarz
Progscon 2017: Serverless Architectures - Rafal GancarzProgscon 2017: Serverless Architectures - Rafal Gancarz
Progscon 2017: Serverless Architectures - Rafal Gancarz
 
QCON London 2017 - Monitoring Serverless Architectures by Rafal Gancarz
QCON London 2017 - Monitoring Serverless Architectures by Rafal GancarzQCON London 2017 - Monitoring Serverless Architectures by Rafal Gancarz
QCON London 2017 - Monitoring Serverless Architectures by Rafal Gancarz
 
Voxxed Bristol 2017 - From C to Q, one event at a time: Event Sourcing illust...
Voxxed Bristol 2017 - From C to Q, one event at a time: Event Sourcing illust...Voxxed Bristol 2017 - From C to Q, one event at a time: Event Sourcing illust...
Voxxed Bristol 2017 - From C to Q, one event at a time: Event Sourcing illust...
 
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt LongLondon Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
 
ServerlessConf: Serverless for the Enterprise - Rafal Gancarz
ServerlessConf: Serverless for the Enterprise - Rafal GancarzServerlessConf: Serverless for the Enterprise - Rafal Gancarz
ServerlessConf: Serverless for the Enterprise - Rafal Gancarz
 
O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...
O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...
O'Reilly 2016: "Continuous Delivery with Containers: The Trials and Tribulati...
 
Haufe #msaday - The Actor model: an alternative approach to concurrency By Lo...
Haufe #msaday - The Actor model: an alternative approach to concurrency By Lo...Haufe #msaday - The Actor model: an alternative approach to concurrency By Lo...
Haufe #msaday - The Actor model: an alternative approach to concurrency By Lo...
 
Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant
Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant
Haufe #msaday - Seven More Deadly Sins of Microservices by Daniel Bryant
 
Haufe #msaday - Building a Microservice Ecosystem by Daniel Bryant
Haufe #msaday - Building a Microservice Ecosystem by Daniel Bryant Haufe #msaday - Building a Microservice Ecosystem by Daniel Bryant
Haufe #msaday - Building a Microservice Ecosystem by Daniel Bryant
 
A Visual Introduction to Event Sourcing and CQRS by Lorenzo Nicora
A Visual Introduction to Event Sourcing and CQRS by Lorenzo NicoraA Visual Introduction to Event Sourcing and CQRS by Lorenzo Nicora
A Visual Introduction to Event Sourcing and CQRS by Lorenzo Nicora
 
Reactive Microservices By Lorenzo Nicora
Reactive Microservices By Lorenzo NicoraReactive Microservices By Lorenzo Nicora
Reactive Microservices By Lorenzo Nicora
 

Recently uploaded

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

Heuristics for Identifying Service Boundaries

  • 1. 1 Heuristics for Service Boundaries Heuristics for Service Boundaries Erich Eichinger, Lead Consultant OpenCredo @oakinger
  • 2. 2 Heuristics for Service Boundaries About • Lead Consultant at OpenCredo • Much longer in Software Delivery than I am willing to admit • Hands on software development consultancy • Cloud Native; Data Engineering & ML @oakinger
  • 3. 3 Heuristics for Service Boundaries Why am I here? • Wrote blog post: https://opencredo.com/identify-service-boundary- heuristics/ • “Things I wish someone had told me” • share my thoughts around those heuristics @oakinger
  • 4. 4 Heuristics for Service Boundaries Where am I coming from? • Architecting, Development and/or Hosting of ~1000 customer websites • Domains: Embedded, News, Online Betting, Sports, Banking, Automotive, Public Sector, ... • “Ate my own dog-food” @oakinger
  • 5. 5 Heuristics for Service Boundaries A naive approach... (don’t try this at home) ... unless you can make sure you’ll be far away when the first change request comes in... @oakinger
  • 6. 6 Heuristics for Service Boundaries Traditional Practices • “Use noun phrase technique” for domain analysis • add some UI/Business/Data Layer @oakinger
  • 7. 7 Heuristics for Service Boundaries Traditional Processes @oakinger
  • 8. 8 Heuristics for Service Boundaries ... and you get 🙀 @oakinger Customer Service Customer UI Shopping Cart Service Shopping Cart UI Address Service Address Data Access User Profile Data Access UI Biz Data
  • 9. 9 Heuristics for Service Boundaries What are (some of) the problems? • Boxes look good, but... • Coordination between Teams exponential • Ignorance of Organizational Context (Silos) • Change Requests ripple through • Archi-Tectonic Drift @oakinger
  • 10. 10 Heuristics for Service Boundaries Real World Service-Orientation • “Bob books a Vacation”: – https://dannorth.net/classic-soa/ • “Starbucks doesn’t use 2-phase commit” – https://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html @oakinger
  • 11. 11 Heuristics for Service Boundaries Service Attributes • Independent delivery pipeline (planning, implementation, deployment) • Owned by one team • Decentralized governance • Independent Data-Storage • Ownership of Communication Interfaces • Clear Terminology (aka “ubiquitous language”) • If user-facing, it comes with its own UI @oakinger
  • 12. 12 Heuristics for Service Boundaries Forces & Dimensions • Multiple forces drive architectural decision making @oakinger
  • 13. 13 Heuristics for Service Boundaries Coupling: Failure Domains https://twitter.com/chimeracoder/status/1047154302375141377?s=21 @oakinger
  • 14. 14 Heuristics for Service Boundaries Coupling: Other • Data Structures and -Types (Events, Records) • Deep Links/URIs • Synchronous APIs (both, syntax *and* semantics) • Distributed Transactions @oakinger
  • 15. 15 Heuristics for Service Boundaries Domain Model Cohesion • “unified view of customer” @oakinger Customer Service
  • 16. 16 Heuristics for Service Boundaries Domain Model Cohesion (II) • “Customer” in Accounting is very different from “Customer” in Support • Leads to unrelated changes in the same service => Bounded Context (Domain Driven Design) @oakinger
  • 17. 17 Heuristics for Service Boundaries Stable vs. Unstable • Over time some services will mature and stabilize • Other services are under constant change or may even get retired => Isolate Stable from Unstable services @oakinger
  • 18. 18 Heuristics for Service Boundaries Load • What if a batch process hits your API? => Instead of hardening the entire service, better isolate/specialize high frequency/large payload consumer API from others @oakinger
  • 19. 19 Heuristics for Service Boundaries Organisation • Technical Optimum can be very different from organisational Optimum: => Large Change, but Team ”WeChat” stays independent! @oakinger SSO Service WeChat Integration Small change Large change vs
  • 20. 20 Heuristics for Service Boundaries Erosion: “what’s your unit/scope of change?” • Changes ripple across multiple services Death by coordination meetings Architecture erodes by teams taking shortcuts @oakinger
  • 21. 21 Heuristics for Service Boundaries Split at Process Hand-Offs • Changes often affect process flows • UI+Biz+Data = Self Contained Systems @oakinger Browse Products Add to Cart Configure Product A Checkout Configure Product B Configure Product C
  • 22. 22 Heuristics for Service Boundaries Operation • Every service comes with overhead – Deployment – Versioning – UI – Monitoring – Tracing – Resiliency • Different Teams may have different maturity/skillsets @oakinger Checkout Service Checkout Service Checkout Service Profile Service Checkout Service Browse Product Service
  • 23. 23 Heuristics for Service Boundaries Security • Every service increases attack surface @oakinger One Big Service Profile Service Profile Service Profile Service Profile Service vs
  • 24. 24 Heuristics for Service Boundaries There’s more... • Data Location • Security Constraints • Budget Owner • ... @oakinger
  • 25. 25 Heuristics for Service Boundaries Most of all: time! • Time may invalidate underlying assumptions – functions move around – service retirement • We learn over time – Example Batch API overload • Learning & Response requires agility on all levels – Reduce entry/exit costs for services (e.g. with containers) – Observability @oakinger
  • 26. 26 Heuristics for Service Boundaries “Begin with the End (&Cost) in Mind” • Where does the organization stand right now? – It takes time to digest changes • what do we want to achieve/optimize for? – Have a clear vision • define measurable goal(s) – “Fitness Functions” (Neal Ford, “Building Evolutionary Architectures”) • Goals and Optima are highly contextual and come with costs! – “More services” is an economic question @oakinger
  • 27. 27 Heuristics for Service Boundaries Example Goals • Isolate Critical Modules • More deployments/[day,week,month] – SkyScanner Talk “10k deploys a day” • Parallelize Delivery – But remember Amdahl’s law @oakinger
  • 28. 28 Heuristics for Service Boundaries Enable Change • Consider Service End-Of-Life – How can a service be retired? • Reduce entry/exit costs for services – Make dealing with overhead “cheaper” – Ultimately serverless • Observability @oakinger
  • 29. 29 Heuristics for Service Boundaries Co-Evolve • Culture • Business • Architecture • Operations • Development • Security They all influence and enable each other – can’t have 100 services without low-cost deployment pipeline and org culture @oakinger
  • 30. 30 Heuristics for Service Boundaries Tips • Start small (extreme: “Monolith first”) • no right way to decompose - question of economy/fitness function – Bounded Context and Process Flows are a good start • observability first • make principles & decisions easy to communicate & understand – have peers challenge your ideas • “continuous architecture” (aka “evolutionary”) – Grow architecture, co-evolve with culture: biz, arch, dev, sec & ops – re-evaluate assumptions, reduce entry/exit costs for services @oakinger
  • 31. 31 Heuristics for Service Boundaries Thanks! Catch me on Twitter @oakinger Blog with catalogue of heuristics (and lots of related links): https://opencredo.com/identify-service-boundary-heuristics/ @oakinger

Editor's Notes

  1. When facing service-splitting myself and/or teaching teams -> reference Rather enumerate the catalog,
  2. “To give you some context”
  3. Photo: https://unsplash.com/photos/07mSKrzKiRw
  4. Notice the last two are a function of time!
  5. There are different ways to phrase this: e.g. “if you have to deploy B when you deploy A”
  6. TBD: replace with own domain “Customer Service”, “Shopping Cart Service”, “Product Catalog Service”, “Shipping Service” Inevitably leads towards “Entity Service” anti-patterns
  7. Example: Checkout Service Tax-Regulations change
  8. Example: Picture Service Once your API is out there, people will use it in unexpected ways!
  9. This is way process hand-off points are often a good point – example “configure product” during checkout
  10. Also: protection skills need to be distributed across multiple teams instead of only one or introduce new SRE
  11. Example wait for Tomcat 6 months – all features get cramed into a single application
  12. Orgs take time to digest changes