Home > Design Patterns > Distributed Capability
Distributed Capability

Distributed Capability (Erl)

How can a service preserve its functional context while also fulfilling special capability processing requirements?

Problem

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.

Solution

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.

Application

The logic is moved and intermediary processing is added to act as a liaison between the moved logic and the main service logic.

Impacts

The distribution of a capability's logic leads to performance overhead associated with remote communication and the need for new intermediate processing.

Architecture

Service
Distributed Capability: 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.

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.