I have an user application in which mqtt client is running and subscribing to the topics published by lora-app-server through mqtt protocol. I am setting qos as 1 and cleansession as false in my application and mosquitto.conf file so that whenever my application got crashed or stopped receiving data, the lost data will be stored in message queue by mqtt protocol so the data will be resend while reconnection of my application happens. Likewise what if loraserver fails to receive data from lora-gateway-bridge, how to make sure that data loss wouldn’t happen between loraserver and lora-gateway-bridge. Is there any case that loraserver may fail or get crashed? let me clear this please.
Im using below mentioned versions,
lora-gateway-bridge - 2.1.5
loraserver - 0.22.0
lora-app-server - 0.14.1
First off, those versions are ancient, you need to upgrade to support what you’re looking to do. There are QoS settings you can set in the gateway bridge configuration, and they recently received updates for reliability.
Thanks for your suggestion, I upgraded to latest version of lora-gateway-bridge, loraserver and lora-app-server, I am able to set qos (1 or 2) in gateway bridge configuration file and I tested like manually stopping the loraserver and im able to receive the lost data after i reconnect loraserver.
Also i have one more concern, between loraserver and lora-app-server there is a GRPC protocol, what will happen during data transmission if lora-app-server application got killed or failed. Is there any way to retain the lost data in this case?
Please clarify me regarding this?
You will want to build your own retry logic around gRPC, in the same way you would if an HTTP call failed.