MQTT 5.0 analytics platform, greenfield project build, part two

Continuing from MQTT 5.0 analytics platform, greenfield project build, part one . Looking a little more at the analytics side:

The beauty of MQTT as a protocol is that it's lightweight and really a very thin wrapper for a payload that is either UTF8 Encoded Strings or an opaque byte array.

These means that the actual payload from your sensor, CANbus or whatever else can simply be consumed, converted into a byte array and dumped into a Publish message. There's no need for the MQTT side of the system to have any semantic understanding of the payload.

So, what do we do with the data (consider this diagram as a rightwards extension of the diagram shown here).

There are four distinct endpoints at the moment:
  • Shakti
  • kdb+
  • Flat-File
  • Memory Mapped File
Along with these destinations we have three main analytics destinations:

This series of posts will, time permitting, include:

Build using Gradle
Shakti vs. kdb+
Real-time analytics and alerting
Memory-mapped files, some thoughts and observations when using Java
Serialisation & Deserialisation (Serdes)