Service API Patterns, Protocols, Coupling Types, Metrics > Service API Management Patterns > Decomposed Capability
How can a service be designed to minimize the chances of capability logic deconstruction?
A common problem with applying the Service Decomposition pattern is that decomposing a service after its implementation can require the deconstruction of logic within capabilities. For example, one capability on the original service may need to be split into two or three capabilities that belong to the newly modeled services. This situation can make the decomposition of a service difficult and impactful.
With the Decomposed Capability pattern, services are modeled to accommodate the potential application of the Service Decomposition pattern in advance. This is achieved via the creation of finer-grained capabilities that better correspond to how they will need to be relocated after the service is decomposed.
The application of the Decomposed Capability pattern makes it easier to relocate capability logic to the new services when the service decomposition occurs. The Invoice service, after decomposition, is maintaining proxy capabilities to minimize the impact on service consumers.