Microservices without DDD is risky business!

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 talk requires no previous experience with DDD, but it is advantageous if you are familiar with the challenges it attempts to solve, such as modularisation of unruly monoliths or managing a flock of microservices that make herding cats seem simple.