The Store-and-Forward Queue
By default, Digital Event Services (DES) stores events in a local queue until DES receives an acknowledgement that the events have reached the configured destination services. When you configure a service group, you can specify destination services that listen for events of the event types that you associate with the service group. Before these events reach a destination service, DES stores the events in a local store-and-forward queue. The store-and-forward queue ensures that no events are lost when a destination service becomes unavailable.
In the Command Central web user interface, you can modify the delivery mode for each event type. Depending on the delivery mode you specify, the store-and-forward queue for the event type can be held on-disk or in-memory. After an event is added to the queue, DES is ready to accept new events. In the meantime, DES delivers the queued events to the destination services in the order in which they were added to the queue.
Consideration for Using the Store-and-Forward Queue
When a destination service becomes unavailable, DES tries to redeliver the events until the destination service becomes available. Meanwhile, events accumulate in the store-and-forward queue until the capacity of the queue is reached. When the capacity of the queue is reached, depending on the runtime in which DES is embedded, DES either throws an exception or blocks the sending of further events until some of the accumulated events reach the destination service.
When you stop DES while it is in the process of sending events, if the destination service is active, DES allows for a grace period of 30 seconds during which DES tries to route the events that remain on the store-and-forward queue to the destination service. After the grace period is over, depending on the delivery mode of the events that you send, DES does the following:
If the events are from an event type that has a persistent delivery mode, after the grace period is over, any events that do not reach a destination service remain in storage until you start DES again and the events can be delivered.
If the events are from an event type that has non-persistent delivery mode, DES removes any events that remain waiting for the destination in the store-and-forward queue after the grace period is over.
When you remove a destination service from a service group:
If a destination service is available and you remove it from a service group, DES gives this service a grace period of 30 seconds to process and acknowledge events in the store-and-forward queue that wait for this destination service. DES removes any events that remain waiting for the destination in the store-and-forward queue after the grace period is over.
If a destination service is currently unavailable and you remove it from a service group, DES removes any events in the store-and-forward queue that wait for this service to become available.
Related Topics