Distributed Capability (Erl)
How can a service preserve its functional context while also fulfilling special capability processing requirements?
A capability that belongs within a service may have unique processing requirements that cannot be accommodated by the default service implementation, but separating capability logic from the service will compromise the integrity of the service context.
The underlying service logic is distributed, thereby allowing the implementation logic for a capability with unique processing requirements to be physically separated, while continuing to be represented by the same service contract.
The logic is moved and intermediary processing is added to act as a liaison between the moved logic and the main service logic.
The distribution of a capability's logic leads to performance overhead associated with remote communication and the need for new intermediate processing.
The logic for the Consolidate operation is relocated to a separate physical environment. A service façade component interacts with the consolidation logic on behalf of the Invoice service contract.