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
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...