anchor.diff:              elasticUrl = http://elasticsearch:9200
           </config>
           <!--
  -            Configure Kafka Consumer.
  +            Configure as Kafka Consumer.
               All properties desribed at https://kafka.apache.org/0100/documentation.html#newconsumerconfigs are supported.
           -->
           <config name="org.opennms.core.ipc.sink.kafka.consumer">
               group.id = OpenNMS
               bootstrap.servers = localhost:9092
           </config>
  -        <feature>sentinel-core</feature>
  -        <feature>sentinel-persistence</feature>
  -        <feature>opennms-core-ipc-sink-kafka-server</feature>
  -        <feature>sentinel-telemetry</feature>
  +        <!-- Install Kafka related features -->
  +        <feature>sentinel-kafka</feature>
  +        <!-- Install flow related features -->
           <feature>sentinel-flows</feature>
       </feature>
   </features>
   -----
  -
  -==== Minion
  -At the moment it is not possible to use _Sentinel_ without _Minion_.
  -Therefore a _Minion_ must be configured in the usual manner.
  -In addition it must listen to incoming flow packages, like so:
  -
  -```
  -$ ssh -p 8201 admin@localhost
  -...
  -admin@minion()> config:edit org.opennms.features.telemetry.listeners-udp-8877
  -admin@minion()> config:property-set name Netflow-5
  -admin@minion()> config:property-set class-name org.opennms.netmgt.telemetry.listeners.udp.UdpListener
  -admin@minion()> config:property-set listener.port 8877
  -admin@minion()> config:update
  -```
  -
  -NOTE:   The name of the listener, in this case `Netflow-5` must match with the name of the adapter
  -        configuration in the _Sentinel_ container.
  -
  -==== OpenNMS
  -{opennms-product-name} must expose its ActiveMQ broker to have a _Minion_ and _Sentinel_ connect to it.
  -This can be done in `$OPENNMS_HOME/etc/opennms-activemq.xml`
  
positive.code:         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.4.0 http://karaf.apache.org/xmlns/features/v1.4.0"
  >
      <!-- Install bootstrap feature to start all required features automatically -->
      <feature name="autostart-sentinel-bootstrap-modules" version="${project.version}" start-level="100" install="auto">
          <config name="org.opennms.sentinel.controller">
              location = SENTINEL
              id = 00000000-0000-0000-0000-000000ddba11
              http-url = http://127.0.0.1:8980/opennms
              broker-url = failover:tcp://127.0.0.1:61616
          </config>
          <feature>scv</feature>
          <feature>opennms-spring-extender</feature>
      </feature>
  
      <!-- Install bootstrap feature to start all flow related features automatically -->
      <feature name="autostart-sentinel-telemetry-flows" version="${project.version}" start-level="200" install="auto">
          <!-- Configure datasource connection -->
          <config name="org.opennms.netmgt.distributed.datasource">
              datasource.url = jdbc:postgresql://localhost:5432/opennms
  
negative.code: NOTE:   Basically the same properties as for the _Minion Controller_ are supported, but must be placed in a different file name.
          `org.opennms.sentinel.controller.cfg` vs `org.opennms.minion.controller.cfg`.
  
  ==== Configure Connectivity
  
  By default the _Sentinel_ consumes messages from the _{opennms-product-name} ActiveMQ Broker_.
  See `Configure the Controller` for more details.
  
  As with _Minion_ the _Sentinel_ can also be configured to consume messages from _Kafka_
  
  ===== Using Kafka
  
  When Using _Sentinel_ with _Kafka_ the same rules for using _Kafka with Minions_ apply.
  
  ====== Kafka Configuration
  
  Each _Minion_ works as a Producer.
  See TODO for more details on how to configure the _Minion_.
  
  Each _Sentinel_ works as a Consumer and can be configured in the file `${SENTINEL_HOME}/etc/org.opennms.core.ipc.sink.kafka.consumer.cfg`.
  Either manually or via the `config:edit org.opennms.core.ipc.sink.kafka.consumer` statement.
  For supported properties, see link:https://kafka.apache.org/10/documentation.html#newconsumerconfigs[here]
  
  NOTE:   TODO MVR Add documentation on how to define the SINK_INITIAL_SLEEP_TIME as it must be a system property at the moment
  
  ==== Available features
  
  The following list contains some features which may be installed manually:
  
  [options="header"]
  |====
  | Feature                      | Required                                         | Description
  
  | sentinel-core
  | true
  | Base feature, installing all required bundles such as `health:check` and service requirements for other bundles, e.g. `sentinel-persistence`.
  
  | sentinel-jms
  | false
  | Provides connectivity to the {opennms-product-name} _ActiveMQ_ Broker.
  
  | sentinel-kafka
  | false
  | Provides connectivity to _Kafka_.
  
  | sentinel-flows
  | false
  | Feature which starts all dependencies to start processing flows.
  
  |====
  
  
  ==== Auto install
  
  In some cases it is desired to automatically configure the _Sentinel_ instance and also start required features/bundles.
  As _Sentinel_ is based on _Apache Karaf_ - which supports auto deployment by simply copying any kind of data
  to the `deploy` folder, _Sentinel_ can make use of that mechanism to enable auto or hot deployment.
  
  In order to do so, in most cases it is sufficient to copy a `features.xml` file to `${SENTINEL_HOME}/deploy`.
  This can be done even if the container is running.
  
  The chapter _Configure Flow Procession_ contains an example on how to automatically start them with _Sentinel_
  
  ==== Health Check / Troubleshooting
  
  The `health:check` command allows to verify the health of the _Sentinel_ container.
  It performs various health checks depending on the installed features to calculate the overall container health.
  For more information please try `health:check --help`.
  
  NOTE: In order to run the `health:check` command, the feature `sentinel-core` must be installed.
  
  NOTE: This is also available in _Minion_ Containers and will replace the now deprecated command `minion:ping`.
  
  
  === Flow Procession
  
  In order to process flows via _Sentinel_ ensure that _{opennms-product-name}_, _Minion_ and _Sentinel_ are all installed according
  to the official Installation Guide.
  
  Afterwards the following configuration examples help setting everything up.
  
  ==== Configure Sentinel
  
  In order to process flows, sentinel must start appropriate flow adapters.
  In _Sentinel_ flow adapters are configured by either be placing a `.cfg` file in `${SENTINEL_HOME}/etc` or via `config:edit` statement.
  
  The following example will configure the consumption of `Netflow5` flows and saves the configuration in
  `${SENTINEL_HOME/etc/org.oennms.features.telemetry.adaters-netflow5.cfg`.
  
  First login to the _Karaf Shell_
  ----
  $ ssh -p 8301 admin@localhost
  ----
  
  ----
  admin@sentinel> config:edit org.opennms.features.telemetry.adapters-netflow5
  admin@sentinel> config:property-set name Netflow-5
  admin@sentinel> config:property-set class-name org.opennms.netmgt.telemetry.adapters.netflow.v5.Netflow5Adapter
  admin@sentinel> config:update
  ----
  
  Afterwards the feature `sentinel-flows` can be installed:
  
  ----
  admin@sentinel> feature:install sentinel-jms <1>
  admin@sentinel> feature:install sentinel-flows
  ----
  <1> or `sentinel-kafka`
  
  NOTE:   Only procession of `Netflow5` flows has been tested.
  
  To check everything is working as expected, run the `health:check` command, e.g.:
  
  ----
  admin@sentinel> health:check
  Verifying the health of the container
  
  Verifying installed bundles                    [ Success  ]
  Connecting to JMS Broker                       [ Success  ]
  Connecting to OpenNMS ReST API                 [ Success  ]
  Retrieving NodeDao                             [ Success  ]
  Connecting to ElasticSearch ReST API (Flows)   [ Success  ]
  
  => Everything is awesome
  ----
  
  ==== Configure Minion
  
  The _Minion_ must be configured to listen to incoming flow packages, e.g.:
  
  ----
  $ ssh -p 8201 admin@localhost
  ----
  
  ----
  admin@minion()> config:edit org.opennms.features.telemetry.listeners-udp-8877
  admin@minion()> config:property-set name Netflow-5
  admin@minion()> config:property-set class-name org.opennms.netmgt.telemetry.listeners.udp.UdpListener
  admin@minion()> config:property-set listener.port 8877
  admin@minion()> config:update
  ----
  
  NOTE:   The name of the listener, in this case `Netflow-5` must match with the name of the adapter
          configuration in the _Sentinel_ container.
  
  ==== Configure OpenNMS
  _{opennms-product-name}_ must expose its _ActiveMQ Broker_ to have a _Minion_ and _Sentinel_ connect to it.
  This can be done in `$OPENNMS_HOME/etc/opennms-activemq.xml`.
  For more details please refer to the Minion Installation Guide.
  
  
  ==== Auto configure flow procession for Sentinel
  
  The following examples illustrate a `features.xml` which configures the _Sentinel_ instance and automatically starts
  all required features to either consume messages via JMS (_ActiveMQ_) or _Kafka_.
  
  Simply copy it to `${SENTINEL_HOME}/deploy/`.
  
  .JMS
  [source, xml]
  