anchor.diff:  - Timestamps
   - Random Numbers
   - Reading from configuration files.
  -- Iterating over some types of collections, eg. HashMaps.
  +- Iterating over some types of collections, e.g. HashMaps.
   ====
   
  -Timestamps are provide by Aeron Cluster (will be shown later). Random numbers are best avoided or use a seed fixed in
  -the initial state or via a message. Configuration changes should be pushed into the application logic via messages.
  -Iterating over collections should happen in a known order, with a collection that preserves ordering (e.g. TreeMap,
  -LinkedHashMap) through sorting the values from the collection before sending them as messages. Alternatively, the
  -Agrona collections can be used with their consistent iteration order and low allocation characteristics.
  +Time, as timestamps, is provided by Aeron Cluster (will be shown later). Random numbers are best avoided or use a seed
  +fixed in the initial state or via a message. Configuration changes should be pushed into the application logic via
  +messages. Iterating over collections should happen in a known order, with a collection that preserves ordering (e.g.
  +TreeMap, LinkedHashMap) through sorting the values from the collection before sending them as messages. Alternatively,
  +the Agrona collections can be used with their consistent iteration order and low allocation characteristics.
   
   As it may be impractical to replay all data from the "beginning of time" the system should take snapshots periodically,
   e.g. daily or hourly. The frequency of snapshots should be determined by the volume of data into the
  
positive.code: each service. Each endpoint will be an offset from the first port in a node's range. E.g. the archive control request
  port has an offset of 1, so for Node 2 it will have port 9201.
  
  To start the cluster node we are going define our own class with a main method.  It will construct and start all of the
  necessary components. As indicated above we are going to give each node of the cluster a unique id (0, 1, and 2). We are
  also going to use this value as the cluster member id.
  
  
negative.code: ingress channel.
  
  NOTE: This example is using UDP unicast for the ingress and egress channels. It is possible to use multicast, but you
  will need to be in an environment where multicast is supported. In cloud deployments UDP multicast is typically not
  supported or in very early stages, so unicast is currently recommended in those environments.
  
  === Publishing to the Cluster
  
  Next we are going to push messages into the cluster itself. So that the client is able to fail over to different nodes,
  as nodes come and go, in the cluster the Aeron publications are contained in a class called `AeronCluster`. This is the
  second of the two items that are connected at start up. This class provides an API very similar to the Publication API.
  
  [source, Java, indent=0, options="nowrap"]
  