Could you slightly elaborate how the request response model works ? MQTT vs in rest API?

Asked by Omkar Joglekar during our MQTT 5 webinar.
Answer: An HTTP Request is a blocking call from a client to a server.
The MQTT Request-Response pattern is asynchronous between two clients that are connected to the same server.
Please feel free to add more specific questions about this topic to this thread.

So what happens when i receive multiple messages on a subscribed topic and the processing involves a blocking call ? Do i need some sort of list to store the messages ?

The request/response pattern in MQTT 5 has been introduced to ensure a standardised way of allowing and additional end-to-end “business acknowledgement” between sender and receiver.
The flow goes like this:
Publisher sends message to Broker (with information about the response topic for the subscriber)
Broker sends message to Subscriber
Subscriber sends a new message on the defined topic by the Publisher to the Broker, to let the Publisher know it received the message.
Broker sends this message to the Publisher.

This is completely different from an HTTP GET request, where the server provides a response with specific information based on the request.

I hope this makes it more clear.


I wrote up a blog post on this subject:
I hope it helps to clarify the difference.