What are the key differentials between the shared-kernel and published-language strategic patterns opted in Domain driven design (DDD)?
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.