+To get a feature, service, or capability working in modern networks is not straightforward.
+It is not as simple as deploying a microservice or running a workflow. Our features, services, and capabilities are
+now typically delivered using loose compositions of microservices, rules, algorithms, configurations, and workflows.
+Of course, we use workflows and deploy microservices, but how do we keep track of what workflow activated which service
+or what microservice instance enables a given capability. We must be able to deploy, keep track of, amend, and remove
+the compositions that combine to give us our features, services and capabilities, that is we must manage those compositions.
+
+.. image:: images/feature-compositions.png
+
+Consider Features A, B and C in the diagram above.
+
+Feature A is realised as an Analytic Microservice, but it also requires counters to be configured in a collection
+service to enable its input stream of data. It also requires two policies to be present, and its result
+requires an Ansible playbook to be present.
+
+Feature B is realised as an AI microservice, which is triggered by a set of triggers that are configured in the
+persistence service. The AI algorithm in Feature B triggers a workflow in the workflow service
+
+Feature C is realised as two microservices, an analytic microservice and a Machine Learning microservice.
+The feature also requires that certain counters are collected and certain Netconf configurations are enabled.
+
+All three features are realised as Automation Compositions, as shown in the diagram below.
+
+.. image:: images/feature-automation-compositions.png
+
+The ability to deploy features in a scalable, flexible and loosely coupled microservice architecture is of course
+a major step forward from layered architectures of the past. However, managing at "Feature" level in such architectures
+does present challenges. For example, to manage the three running instances of Features A to C above,
+9 separate elements must be kept track of. There is nothing in the deployed system to sat what element is
+related to what other element, and what element are working together to realise a feature.
+
+Automation Composition Management (ACM) is a framework that supports Life Cycle Management of Automation Compositions.
+It supports deployment, monitoring, update and removal of Automation Compositions en-bloc, allowing users
+to manage their features, services, and capabilities as single logical units.
+
+1 Introduction
+==============
+