Skip to main content Skip to footer

Search Crosser Knowledge Base

Message retries (store-and-forward)

Most Flows produce results that need to be delivered to external systems, either locally or in the cloud. However, when results are ready the external system may not be available, could be due to temporary connectivity issues or the system may be out-of-service at this time.

In order to not lose any messages all modules in the Crosser library have built in retry capabilities. This feature is mainly useful on output modules that communicate with external systems.

On the General tab in the module settings you find the settings that control the retry behavior:

  • Max Number of Retries - This setting controls how many times the module should try to deliver the message. When it runs out of retries the message will be dropped (actually it ends up in a dead-letter queue, but that’s for more advanced usage). The setting is 0 (no retries) as default.
  • Retry Delay in Milliseconds - Specifies how long time to wait between each retry.

There is also a setting to control where messages are stored while waiting for successful delivery. By default they are stored in memory, but by checking Persistent Messages Enabled they will be stored on the local disk. Then any undelivered messages will be picked up even if the Flow is restarted. Storing messages on disk will have a significant performance impact, so make sure your Flow is still able to cope with the message rate you expect, if you turn on this option.

Read more about retries and message queues here.

About the author

Goran Appelquist

Göran has 20 years experience in leading technology teams. He’s the lead architect of our end-to-end solution and is extremely focused in securing the lowest possible Total Cost of Ownership for our customers.

"Hidden Lifecycle (employee) cost can account for 5-10 times the purchase price of software. Our goal is to offer a solution that automates and removes most of the tasks that is costly over the lifecycle.

My career started in the academic world where I got a PhD in physics by researching large scale data acquisition systems for physics experiments, such as the LHC at CERN. After leaving academia I have been working in several tech startups in different management positions over the last 20 years.

In most of these positions I have stood with one foot in the R&D team and another in the product/business teams. My passion is learning new technologies, use it to develop innovative products and explain the solutions to end users, technical or non-technical."