Search code examples
domain-driven-designstrategy-pattern

DDD Strategic design: Shared kernel pattern vs Published language pattern


What are the key differentials between the shared-kernel and published-language strategic patterns opted in Domain driven design (DDD)?


Solution

  • Both shared-kernel and published-language are part of the Context Maps patterns collection. Context Mapping is a very useful and powerful tool that allows one to see what kind of dependencies link systems together. They can also highlight teams relationships.
    A shared-kernel means that 2 systems are strongly coupled by sharing a shared artifact (model, DLL, Jar, DB, ...). If those 2 systems are handled by 2 different teams, it means that whenever Team A change something, it will impact Team B and vice versa.
    A published-language is a model that is well documented that everyone can understand and translate. Think of iCal, VCard or such things.
    Michael Plöd did a great job on documenting Context Maps patterns, you can have a look here.