Hi,
Based on my understanding, and taking into account the context of your scenario, the best option for this case would be to define those domain types in a Shared Assembly (Option 1), so they can be referenced by the rest of your Modules that use them.
As far as I know, the second option you are mentioning is more commonly used to share a Service between Modules in a loosely coupled way, but not for sharing types. That's why it doesn't seem to provide a benefit in your application context.
Hope this helps,
Federico Martinez
http://blogs.southworks.net/fmartinez
Based on my understanding, and taking into account the context of your scenario, the best option for this case would be to define those domain types in a Shared Assembly (Option 1), so they can be referenced by the rest of your Modules that use them.
As far as I know, the second option you are mentioning is more commonly used to share a Service between Modules in a loosely coupled way, but not for sharing types. That's why it doesn't seem to provide a benefit in your application context.
Hope this helps,
Federico Martinez
http://blogs.southworks.net/fmartinez