Service-oriented endpoint patterns
What can we do to make our endpoints as service-oriented as possible? We can retain our focus on reusability, abstraction, interoperability, and loose coupling in order to accomplish this. One way to do this is embrace data mapping and not be hamstrung by the idea that the bus should only accept a single canonical schema. If we don't force service callers to all implement a specific data format, we can instead grow our set of callers organically and bring on new clients with ease.
Building reusable receive ports
One key way to make our services as interoperable as possible is to offer a range of inbound transmission channels. While it would be ideal if all our service clients were running the latest versions of the .NET framework, in reality, we are frequently interacting with either dated or cross-platform service consumers. Also, while we may have all service consumers on the same platform, they may all define a particular data entity in slightly different...