We are implementing asynchro integration between our ERP (SAP) and Tulip.
The flow is: After an update of our ERP, SAP send message to our broker (Solace) for update status (production order for example). Tulip subscribe to those message via machine and automation update Tulip table accordingly. All those message are with QualityOfService 2 and queued in the broker subscription client.
Following some test, we realize that only one message per second could be receive (rate limit is 1hz for machine). By the book, that should not be a problem because if a message is not received /acknowledge by the subscriber, message are queued in the broker.
However, following investigation, we discover that messages, not received by machine, wasn’t in broker queue, due to the fact that OPCH ackownledge all message and not only message processed.
For me, there is a gap design from standard MQTT protocol implementation.
From the broker, only message receive and process by Tulip must be acknowledge.