REST is a representational state transfer architectural style designed as a request/response model that communicates over HTTP. MQTT is a publish/subscribe model that runs over TCP/IP sockets or WebSockets. MQTT over WebSockets can be secured with SSL. You can choose to update data to a ThingSpeak™ channel either using a REST GET or POST request or using MQTT PUBLISH method. You retrieve channel data using a REST GET request or MQTT SUBSCRIBE.
In these scenarios, it is useful to use REST calls to update or retrieve data from a ThingSpeak channel.
In these scenarios, it is useful to use MQTT to update data to a ThingSpeak channel.
Your device is power-constrained, and you want lower battery consumption to send data to ThingSpeak. Also, an MQTT PUBLISH operation is typically faster in this scenario.
Your device connectivity is intermittent, and you have limited bandwidth usage.
You want immediate updates of data posted to a channel.
You want messages pushed to you instead of needing to poll the server for new messages.