anchor.diff:  
   === Other events
   
  -There a number other events received by the `ClusteredService` interface, such as timer events, clients connecting and
  -disconnecting from the cluster, and leadership and role changes. We won't look at these in this tutorial.
  +There a number of other events received by the `ClusteredService` interface, such as timer events, clients connecting
  +and disconnecting from the cluster, plus leadership and role changes. We won't look at these in this tutorial.
   
   == Configuring a Cluster
   
   Now we have our application implemented we can move onto running it in a cluster. There are a number of moving parts to
   setting up a cluster node, one of the trickiest parts of using Aeron Cluster is getting the configuration correct. We
   are going to start with a static three-node cluster with a simplified configuration where all the components
  -(MediaDriver, Archive, ConsensusModule and ClusteredServiceContainer) for a single node withing a single process. Later
  +(MediaDriver, Archive, ConsensusModule and ClusteredServiceContainer) for a single node within a single process. Later
   we will then start the cluster as three separate processes.
   
   === Running Multiple Nodes on the Same Host
  
positive.code: - Timestamps
  - Random Numbers
  - Reading from configuration files.
  - Iterating over some types of collections, eg. 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.
  
  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
  
negative.code: 
  == Implementing a Clustered Service
  
  The first step to setting up a cluster is to implement the application logic. For this tutorial we are going to
  implement simple auction service. It will have one auction and will track the best price, and an id for the customer
  who bid that price. To properly demonstrate the state management and recovery features of cluster it is important to
  have some functionality that is stateful, rather than something that is stateless like an echo service.
  
  NOTE: In order to understandably show the various features of Cluster, we've kept the various aspects of the code
  (data serialisation, application logic, Cluster integration) very close together. It is unlikely you would do this in a
  