At ZangaBee, we love tackling complex integration challenges and recently, one of our clients presented a particularly interesting one.

The challenge:
Our client needed a reliable way to generate numeric, incrementally assigned EDI control numbers that act as unique identities across multiple data flows. Normally, this kind of identity generation would be handled by a dedicated database service, but in this case, the client didn’t have one available.

Our solution:
By creatively leveraging multiple features within Celigo’s platform, we built a fully contained solution no external database needed.

Here’s how we did it:

  1. Robust connection concurrency control:
    We set up a dedicated Celigo connection configured with a concurrency limit of 1. This ensured that all flows requiring control numbers would run sequentially, preventing any risk of duplicate numbers being assigned if two flows tried to generate numbers at the same time.
  2. Celigo’s State API for persistent storage:
    We used the State API to store the latest assigned control number for each object type. This allowed the integration flows to retrieve and update the current number safely without conflicts.
  3. Celigo’s APIs for atomic number assignment:
    Originally, we implemented this logic using a JavaScript API that read the current number from the State API, incremented it, and updated the stored value in a single step. This atomic operation ensured no duplication. Later, we migrated this process to Celigo’s new visual API builder for easier maintenance and scalability.

The result:
Thanks to this approach, the client now has a robust, scalable numeric identity provider fully managed inside Celigo, without the need for any external database service. This streamlined their EDI workflows and ensured consistent control numbers across all flows.

🍪 Wij gebruiken cookies om je de beste gebruikservaring te kunnen bieden.