anchor.diff:  === Append only data structure
   
   CQ is design for sequential writes and reads.  It also supports random access and updates in place although you cannot change the size of an existing entry. You can pad an entry for future use.
  -This append only structure is more efficient for passing data between threads via the CPU L2 cache coherence bus and it can be faster than attempting to pass an object between threads as it avoid random access which can be common in Java objects where there can be a lof of reference chasing.
  -
  -It is also more efficient for persistence to disk as HDD and SSD are much efficient when accessed sequentially.  The append only structure makes replication much simpler as well.
  +This append only structure is more efficient for passing data between threads via the CPU L2 cache coherence bus
  +and it can be faster than attempting to pass an object between threads as it avoid random access which can be
  +common in Java objects where there can be a lot of reference chasing.
  +
  +It is also more efficient for persistence to disk as HDD and SSD are much more efficient when accessed sequentially.
  +The append only structure makes replication much simpler as well.
   
   === Unbounded memory mapped files
   
  
positive.code: try (ChronicleQueue queue = SingleChronicleQueueBuilder.binary(dir).build()) {
      ExcerptAppender appender = queue.acquireAppender();
      appender.writeDocument(new Order("Symbol", Side.Buy, 1.2345, 1e6)); // <1>
      appender.writeDocument(w -> w.write("newOrder").object(new Order("Symbol2", Side.Sell, 2.999, 10e6)));
      System.out.print(queue.dump());
  }
  ----
  
negative.code:  - a bit to flag whether the message is complete or not.
  
  When the message is not complete, it cannot be read.  However, if the length is known, a writer can skip such messages, attempt to write after it.
  Say Thread1 is in the middle of writing a message, but it knows how long it will be,
  it can write 4 bytes which indicate the length.
  Thread2 can see that there will be a message and skip over it looking for a place to write.
  This way multiple threads can be writing to the queue concurrently.
  Any message which is detected as bad e.g. the thread died, can be marked as meta data and skipped by the reader.
  
  There is a special value which is a "poison pill" value, which indicates the file has been rolled.
  