Formatter is an object that encodes and serializes data
into messages at one end and decodes and deserializes
messages into data at the other end.