Home > Design Patterns > Decomposed Capability
Decomposed Capability

Decomposed Capability (Erl)

How can a service be designed to minimize the chances of capability logic deconstruction?

Problem

The decomposition of a service subsequent to its implementation can require the deconstruction of logic within capabilities, which can be disruptive and make the preservation of a service contract problematic.

Solution

Services prone to future decomposition can be equipped with a series of granular capabilities that more easily facilitate decomposition.

Application

Additional service modeling is carried out to define granular, more easily distributed capabilities.

Impacts

Until the service is eventually decomposed, it may be represented by a bloated contract that stays with it as long as proxy capabilities are supported.

Architecture

Service

Listen to the podcasts that accompany this site

Decomposed Capability: The Invoice service (middle) derived from the same business entities (left) exposes a series of more granular capabilities, several of which correspond directly to specific business entities. This increases the ease at which subsequent service decomposition can be accomplished. The decomposed services (right) are no longer in conflict because the capabilities affected by the decomposition are clearly mapped to the new services. Those same capabilities also remain in the Invoice service contract (top right) as per Proxy Capability.

The Invoice service (middle) derived from the same business entities (left) exposes a series of more granular capabilities, several of which correspond directly to specific business entities. This increases the ease at which subsequent service decomposition can be accomplished. The decomposed services (right) are no longer in conflict because the capabilities affected by the decomposition are clearly mapped to the new services. Those same capabilities also remain in the Invoice service contract (top right) as per Proxy Capability.

Related Patterns in This Catalog

Contract Denormalization, Proxy Capability, Service Decomposition

Related Service-Oriented Computing Goals

Increased Intrinsic Interoperability, Reduced IT Burden