We know it's useful to split up complex systems. We've seen the benefits of modular deployment of microservices. Dealing with only one piece of code at a time eases our cognitive load. But how do we know where to draw the service boundaries? In complex business domains, it's often difficult to know where to start. When we get our boundaries wrong, the clocks starts ticking. Before long, we hear ourselves say "it would be easier to re-write it".
Join Adam for practical advice on discovering the hidden boundaries in your systems. Help tease out the natural separation of concerns in a sample business domain. During 20 years of developing complex systems, Adam has had plenty of time to get things wrong. Learn to avoid the common pitfalls that can lead us down the path to "the big re-write".
Webinar recording: https://particular.net/webinars/finding-your-service-boundaries-a-practical-guide
14. @adamralph
WHAT A SERVICE IS NOT
Something with only functionality is a function:
calculation, validation, etc.
Something with only data is a database:
[create, read, update, delete] entity.
HTTP/WSDL makes no difference.
15. @adamralph
WHAT IS A SERVICE?
A service is the technical
authority for a specific
business capability.
All data & business rules reside within
the service (a bounded context).
Nothing is “left over” after identifying
services. Everything must be in some
service.
17. @adamralph
DECOMPOSING A DOMAIN
public class Customer
{
FirstName
LastName
Status
// etc
}
public class Product
{
Name
Description
Price
// etc
}
• Customer
status
• Product
price
• Customer’s
first name
• Customer’s
last name
• Product
name
• Product
description
RED GREEN YELLOW
18. @adamralph
Home insurance
Travel insurance
Car insurance
Policy Service
Home insurance
Travel insurance
Car insurance
Claims Service
Insured vehicle
Coverage
PolicyId
ClaimId
Car Insurance
Home owner
Coverage
PolicyId
ClaimId
Home Insurance
Insured persons
Coverage
PolicyId
ClaimId
Travel Insurance
INSURANCE
Home insurance
Travel insurance
Car insurance
Policy Service
Home insurance
Travel insurance
Car insurance
Claims Service