Just about everyone is doing microservices these days, at least that's what they're claiming. Microservices is the new black! But, how well are they really doing? When breaking things up there is a risk of ending up in the same rut as SOA did a decade ago, in effect creating distributed monoliths. So, is it at all possible for anyone to reach the promised land consisting of autonomous, cohesive, and loosely coupled services?
My claim is that it is doable, but not without some up-front modelling under the guidance of Domain-driven Design concepts like "bounded context", "core domain", "ubiquitous language" and ¡°aggregates¡±. Distilling the domain, drilling deep into the core business concepts, and breaking it up into isolated and protected contexts will take you a long way. Add some business capability modelling and service-orientation into the mix, and you are halfway there. Use it as a map to guide you on the journey towards an orderly and robust distributed system, built by adding one MVP at the time in a low-risk agile manner.
This is a redux of the 2016 talk with the same title.
1 of 37
Downloaded 11 times
More Related Content
Microservices without DDD is risky business! REDUX
6. ¡°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
20. 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
36. ¡°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