MQTT 5.0 analytics platform, greenfield project build, part one

A recent engagement has involved the build of an MQTT framework.  This has included several components:

(1) Client-side components and bridge to CAN bus

(2) Server-side components to accept connections, maintain state and manage lifetime of sessions

(3) Server-side middleware integration to Shakti*, kdb+, simple text flat-file and memory-mapped-file

Looking at this from the perspective of an Electronic Trading engineer, there are a lot of differences but some common themes run throughout the problem domain.

Less datatypes - MQTT has Bits, Two-Byte Integer, Four-Byte Integer, UTF8-Encoded String, Variable Byte Integer, Binary Data and UTF8-Encoded String Pair. 

Less messages - MQTT has a short list of messages - Auth, ConnAck, Connect, Disconnect, PingReq, PingResp, PubAck, PubComp, Publish, PubRec, PubRel, SubAck, Subscribe, UnSubAck, Unsubscribe.

The list of FIX messages would take up several pages...