is a system design
principle that deals with the inter-relationships of components. A highly composable system provides recombinant components that can be selected and assembled in various combinations to satisfy specific user requirements. The essential attributes that make a component composable are that it be:self-contained (modular
): it can be deployed independently - note that it may cooperate with other components, but dependent components are replaceablestateless
: it treats each request as an independent transaction, unrelated to any previous request
Composability (being able to be composed) should not be confused with compositionality (the whole can be understood by understanding the parts and how they are combound).