The application of the service composability principle requires designing services so that they can be used in a service composition either as a service that controls other services, i.e. a controller service, or as a service that provides functionality to other services in the composition without further composing other services, i.e. a composition member. must be designed so that it presents functionality based on varying levels of input and output data. In case if it is required to participate as a composition member, then usually the input parameters to the service would be more fine grained as compared to the situation when it is required to participate as a composition controller. A heavily reused service must be as stateless as possible (
service statelessness principle) so that it can provide optimum performance when composed within multiple service compositions. The effectiveness of this principle depends upon the extent to which
rest of the design principles have been applied successfully. The application of the
standardized service contract principle makes the services interoperable with others, and helps to keep the composition design simpler by avoiding the need to perform runtime
data model transformation. By applying the
service loose coupling principle, a service could be recomposed with the confidence that it would not create any form of negative coupling with the other service in the composition. The application of the
service autonomy and the
service statelessness principles increase the reliability and availability of the service so that it be reused in multiple service compositions with increased confidence. ==Considerations==