Vladik Khononov is a Software Engineer, Architect, Speaker and an author of "What is a Domain Driven Design" book.  But this review is about his second book: Learning Domain Driven Design. I would say the book is not about learning the DDD, but rather applying the DDD approach to different business situations. But let's take a closer look.

What it is all about

The book starts with description of types of subdomains. Any business has core, generic and supporting subdomains. Core business subdomain provides a competitive advantage and is complex in nature: be it delivery, banking, medical research etc. Generic subdomain is complex as well, however represents a solved problem: let's say payment processing. You don't have to build your own, just use Stripe. Supporting subdomain is necessary for the business, but relatively simple, say accounting.

The nature of the subdomains affects the architecture approaches and patterns you use in each of them. If you heard of Active Record, Transaction scripts and others you might have noticed they have their own place and can not be used everywhere. The book explains where are the limits where you can use the patterns and even provides a decision tree for them depending on the type of the subdomain.

The domains can also change it's type due to the agile nature of business in general. Let's say the company invents a breakthrough approach in it's supporting subdomain so it starts to provide an advantage: the supporting subdomain becomes a core one. However it requires a migration of an old architecture to a new one; the book covers how to deal with this problem as well.

Indeed, the book covers all the aspects of how DDD helps in architecturing. It explains the concept of a bounded context and how narrow or wide it can be; it describes the idea of ubiquitous language and how the bounded contexts use them; it also provides the patterns to apply on the context boundaries.

The last part of the book  covers how to apply DDD in a real world, starting with understanding your business with Event Storming sessions, and ending up with building a sophisticated Data Mesh platform to properly build, support and evolve your business decisions.

What can be do better

In my opinion the book would be even greater if included more real life examples on how the DDD can be applied in particular situations. For example, how to better conduct Event Storming in a complex setup when product managers, development teams and data analytics are three different group of people(I used to work in such environment). It might be also useful to provide more detailed examples of modeling core domains like finances or health care. Other than that, nothing to add.

Conclusion

Absolute must to read for every business oriented developer. Must read as well for a software architect. Totally recommend. You can buy the book on Amazon.

5 out of 5

I also have an Architecture Weekly newsletter, where you can notice articles from many authors, Vlad included. Subscribe for free here.