The disparate components of an application have to be put together to form one connected
application. In such decomposed applications, information exchange and management tasks,
such as scaling, failure handling, or change management can be simplified, if application components can be viewed independently (Fehling et al, 2014). This, however, demands that the relationships and inter-dependencies between components be minimized so that the addition, subtraction, failure, or changes of one element of the components has minimal to no impact on other components.