ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Microservices without DDD is
risky business!
R E D U X
@trondhjort Source: Strategic & Sociotechnical DDD Patterns, Nick Tune at ?Con London 2019
@trondhjort
Source: ¡°Testing in Production at Scale¡±, Amit Gud at SREcon
@trondhjort
Large
High coupling
Low cohesion
Small
Low coupling
High cohesion
Monolith Microservices
Modular monolith SOA 2.0
¡°This _____ discusses modularisation as a
mechanism for improving the flexibility and
comprehensibility of a system while allowing the
shortening of its development time.¡±
@trondhjort
-David Parnas, 1972
paper
Source: D.L. Parnas, Communications of the ACM, 1972@trondhjort
Microservices without DDD is risky business! REDUX
Source: @mathiasverraes
Customer
Account
Subscription
@trondhjort
Source: http://bill-poole.blogspot.com, 2008@trondhjort
Source: ¡°What Comes After Microservices?¡±, Matt Ranney at YOW! 2016
Source:(http://geek/and/poke.com/(
Source: http://geek-and-poke.com/@trondhjort
@trondhjort
Large
High coupling
Low cohesion
Small
Low coupling
High cohesion
Monolith Microservices
Modular monolith SOA 2.0
Distributed monolith
?Services nServices
@trondhjort
Service-orientation
Boundaries are explicit
Services are autonomous
Services share schema and contract, not class
Service compatibility is based on policy
s
@trondhjort
Source: ¡°From Capabilities to Services¡­¡±, Ulrich Homann & Jon Tobey 2006@trondhjort
Microservices without DDD is risky business! REDUX
Microservices without DDD is risky business! REDUX
Collaboration of software and domain experts
Focus on the core domain
Ubiquitous language in a bounded context
The essence of DDD
@trondhjort Source: Domain-Driven Design Reference, Evans
Strategic patterns
Source: Domain-Driven Design Reference, Evans@trondhjort
Source: ¡°Patterns, Principles and Practices of Domain-Driven Design¡±, Tune & Millett@trondhjort
The Enterprise
Source: Business Capability Management, Ulrich Kalex 2011@trondhjort
Corporate Management
Market
Dev.
Oversight
Delivery
Product
Dev.
Market Development
Contact Man.
Revenue
Analysis
Regional
Market
Man.
Order
and
Contract
Man.
Market
Analysis
Support
&
Services
Direct Marketing
Channel Man. Sales Man.
Subdomains
Customer
Account
Subscription
Billing Customer Care
Subscription
Management
Billing
Account
Customer
Subscription
Portfolio
Owner Payer
Sales Invoice
Install base
Products
@trondhjort
¡°All models are wrong
but some are useful¡±
-George Box
Source: Robustness in Statistics, 1978@trondhjort
Source: Implementing Domain-Driven Design, Vaughn Vernon@trondhjort
@trondhjort
Tactical patterns
@trondhjort Source: Domain-Driven Design Reference, Evans
Aggregate Subscription
Portfolio
Owner
Portfolio
Subscription
A
customerId
Subscription
B
Subscription
C
Subscription
B
?@trondhjort
Subdomain ? Service (BC) ? Aggregate
Subscription
Portfolio
Owner
Portfolio
management
?
Taxonomy
Portfolio
Subscription A Subscription B Subscription C
?
@trondhjort
@trondhjort
Microservices without DDD is risky business! REDUX
Photo: Tori Hogan
Source: MicroservicePrerequisites, Martin Fowler 2014
Source: ¡°Accelerate¡±, N. Forsgren et al 2018
¡°A complex system that works is
invariably found to have evolved
from a simple system that worked.
A complex system designed from
scratch never works and cannot
be patched up to make it work.
You have to start over with a
working simple system.¡±
-John Gall
Making IT your winning asset
trondhjort

More Related Content

Microservices without DDD is risky business! REDUX