How to Leverage Method Chaining To Add Smart Message Routing in Java

We are going to use the open-source serialization library Chronicle Wire. Let's assume we have some data that we want to send to a particular destination; we don't want to pollute our business data structures with the routing information. In the future, the routing information could be removed or changed based on external factors such as system failover or horizontal scaling.  

 Having a separation of routing and business messages is nothing new; after all, JMS has been doing it for years with their createObjectMessage (below):