SPLITTING THE
MONOLITH
Maria Gomez
Tim Cochran
Loosely coupled
Highly cohesive
Single responsibility
Microservices
Loosely coupled
Highly cohesive
Single responsibility
Monolith
Identify contexts
ACME e-store
Payments
Customer
ServiceRecommendations
Decouple contexts
ACME e-store
Payments
Customer
ServiceRecommendations
ACME e-store
Payments Customer
Service
Recommendations
Choose the context to extract first
Payments Customer
Service
Recommendations
ACME e-store
▫︎Pace of change
▫︎Performance
▫︎Security
▫︎Team structure
▫︎Dependencies (internal or external)
▫︎Technology
How to decide:
Untangle dependencies
Payments
Customer
Service
Recommendations
DB
Payments
Customer
Service
DB DBDB
/payments/123
Recommendations
Payments
Customer
Service
Reference Data
Recommendations
Payments
Customer
Service
Recommendations
Payments
Customer
Service
Journal
Recommendations
/journals/123
/journals/456
/journals/789
ANTI PATTERNS
▫︎Start with small services
▫︎Big up-front design
▫︎Not letting your consumers define your
API’s
Tim Cochran
Maria Gomez
THANKS