Capability Composition (Erl)
How can a service capability solve a problem that requires logic outside of the service boundary?
A capability may not be able to fulfill its processing requirements without adding logic that resides outside of its service's functional context, thereby compromising the integrity of the service context and risking service denormalization.
When requiring access to logic that falls outside of a service's boundary, capability logic within the service is designed to compose one or more capabilities in other services.
The functionality encapsulated by a capability includes logic that can invoke other capabilities from other services.
Carrying out composition logic requires external invocation, which adds performance overhead and decreases service autonomy.
PrinciplesStandardized Service Contract, Service Loose Coupling, Service Abstraction, Service Reusability, Service Autonomy, Service Statelessness, Service Discoverability, Service Composability
ArchitectureInventory, Composition, Service
The individual capabilities of services can be aggregated to collectively help solve the large problem from which they were originally derived.