Concurrent Contracts (Erl)
How can a service facilitate multi-consumer coupling requirements and abstraction concerns at the same time?
A service's contract may not be suitable for or applicable to all potential service consumers.
Multiple contracts can be created for a single service, each targeted at a specific type of consumer.
This pattern is ideally applied together with Service Façade to support new contracts as required.
Each new contract can effectively add a new service endpoint to an inventory, thereby increasing corresponding governance effort.
Separate contracts are created for the three service consumer categories. In some environments this may require the further qualification of the service name; for example, the three contracts may be named Invoice Admin, Invoice Reporting, Invoice Vendor.