vladikk/learning-ddd

interchange context

Closed this issue · 2 comments

Hi Vlad,

I did read your book learning-ddd and it's great - many thanks. I hope I can ask a question. On p.139 the concept of interchange context is mentioned. On p.229 the concept of integration-oriented model is mentioned. Are we not going back to the 'old school' canonical data model from SOA ESB era with the concept of interchange context as a separate bounded context in charge of transforming models for more convenient consumption by other components? If not, what is the difference?

Many thanks for your explanation!

Hi Ton! Thanks so much for you kind words about the book, so happy to hear that :)

I tend to use interchange contexts only when the need is justified. My main concern is that having a big smart interchange context can be quite similar to an ESB, as you've mentioned. The integration-oriented model, mentioned on p. 229, defines a model that is used as a service's public interface and is decoupled from the model used internally. It's basically the same concept as open-host service (p. 55) exposing a published language. Indeed, there are some similarities to the concept of canonical data model (CDM) but I'd say that the end goal is different. With DDD we intend to create models that are more evolvable than a typical CDM. Furthermore, a published language describes only what is encompassed by its bounded context, and not the whole system, as in the case of a CDM.

Thanks Vlad for your quick reply. Perfect explanation!