By using AWS re:Post, you agree to the Terms of Use

guaranteed delivery of events with intermittently offline Device


I have a GreenGrass device that can be intermittently offline, and I would like to inform the server of important events that happen.

Is there a message queuing system I can use within GreenGrass where I publish the event locally and whenever the Device is re-connected it will deliver this message.

Can I use IoT-Core for this ? Will it allow me to publish multiple messages to a topic and will they all get cached until delivery, and they arrive in the same order that they were sent with ?

Does it have a 'save to disk' option so it will retain the messages for delivery even in-between reboots ?

1 Answer
Accepted Answer

There is an MQTT spooler, but it's presently an in-memory spooler.

spooler (Optional) The MQTT spooler configuration for the Greengrass core device. This object contains the following information:

maxSizeInBytes (Optional) The maximum size of the cache where the core device stores unprocessed MQTT messages in memory. If the cache is full, the core device discards the oldest messages to add new messages.

Default: 2621440 (2.5 MB)

keepQos0WhenOffline (Optional) You can spool MQTT QoS 0 messages that the core device receives while its offline. If you set this option to true, the core device spools QoS 0 messages that it can't send while it's offline. If you set this option to false, the core device discards these messages. The core device always spools QoS 1 messages unless the spool is full.

Default: false

You can see some discussion about a persistent spooler here:

profile picture
answered 7 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions