Q:

Which is the most lightweight and efficient message payload format to exchange over MQTT or HTTP?

I am been working on a project where it is required to exchange data between the edge device on field and the server. As this is a complex architecture and contains a lot of components it is important that each and every component be evaluated thoroughly and make it optimized and lightweight as we are dealing with resource constrained device.
I have mostly seen the use of JSON for message payload. I just want to know are there any better options available than JSON which is more lightweight and optimized?
PS : Lightweight meaning less computing power, optimized meaning less chances of data corruption over transmission.

A:

You could always roll your own, but besides the cloud-proprietary schemes for AWS IoT, Azure, Google IoT, etc, we are aware of these non-JSON-based:

SmartREST https://cumulocity.com/guides/device-sdk/mqtt/#smartrest-2
Sparkplug https://www.cirrus-link.com/mqtt-sparkplug-tahu/
TR50 https://docs.devicewise.com/Content/Products/IoT_Portal_API_Reference_Guide/MQTT_Interface/MQTT-Interface.htm
LWM2M-MQTT https://wiki.eclipse.org/images/e/e1/LWM2M_MQTT_EclipseIoTDaysGrenoble.pdf

Whether any of them is more light-weight depends on your EXACT requirements.

