Home

Sequencing

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
page

Overview

For some use cases the sequence in which events are sent out is very important. The direct, asynchronous and parallel sending of events did mean that to cover these use cases the consumers of the events needed to handle out-of-sequence events, especially if calls failed and needed to be reprocessed later.

This is a standard pattern in event driven architectures but still poses some challenges if lots of consumers are involved. For most use cases our practice of re-extracting the data on re-send ensured that always the latest data is sent regardless of how many changes have happened since the last send.

So we introduced a new option to prevent parallel send operations happening for the same objects. With this new option you can configure an outbound object to always use an additional sequencing step which ensures that messages are sent in sequence if they are referring to the same object id (e.g. to the same Sales Order number). This involves multiple steps:

  • Saving the generated payload
  • Acquiring a lock on sending for the same key (preventing parallel send calls)
  • Checking existing payloads and if there are older unsent payloads available then those are sent first

If these steps result in an error the remaining payloads are not sent and kept until the next retry (or event for the object) happens.
Note that this also means that you will also have more accurate view of the changes, as in case of failures the payloads being sent are the ones created at the time of the event. This can be important for use cases that deal with status changes, where standard methods might omit certain status if calls did have errors and are reprocessed at a later time.

Activate Sequencing

The Sequencing feature is configured in the Header Attributes of the Outbound Object.

  • Go to transaction: /ASADEV/ACI_SETTINGS
  • Select your Instance and Outbound Object
  • Go to Header Attributes
  • Add New Entry and specify:
    • Header Attribute: SEQUENCING
    • Header Attribute Value: X
Header Attribute Header Attribute Value
SEQUENCING X
Scroll to Top