anchor.diff:  --
   
   The final step is to wire the whole thing together.
  -It is possible to wire all of the components manually, however it can be a little bit complicated so a DSL is provided to simplify construction.
  -Some of the more complicated options are not available via the DSL, however it is suitable for most circumstances.
  +Whilst it is possible to wire up each component manually, this can be complicated and so a DSL is provided to simplify construction.
  +
  +TIP: Some of the more complicated options are not available via the DSL; however, it is suitable for most circumstances.
   
   .Example using the legacy `LongEventProducer`
   [source,java]
  
positive.code: - replication (sending the input data to another machine to ensure that there is a remote copy of the data);
  - and business logic (the real processing work).
  
  Looking at <<user-guide-models>> is possible to see that there are 3 Event Handlers listening (`JournalConsumer`, `ReplicationConsumer` and `ApplicationConsumer`) to the Disruptor, each of these Event Handlers will receive all of the messages available in the Disruptor (in the same order).
  This allows for work for each of these consumers to operate in parallel.
  ****
  
  
negative.code: include::{gradle-rootdir}/src/examples/java/com/lmax/disruptor/examples/longevent/LongEventHandler.java[tag=example]
  ----
  
  Finally, we will need a source for these events.
  For simplicity, we will assume that the data is coming from some sort of I/O device, e.g. network or file in the form of a `ByteBuffer`.
  
  ==== Publishing
  