IDNFR-2007
NameAriba Event Management Orchestration Framework
AuthorKapila Epasinghe ( kapila.epasinghe-ext@syensqo.com )
ApproverSascha Wenninger ( sascha.wenninger-ext@syensqo.com )


Summary

The integration solution is designed to solve a coordination and rate limit management problem between Ariba Event Management API and Keelvar APIs . 

During the implementation of Interfaces (see below) that require orchestration of the APIs between the two systems, it was discovered that strictly imposed rate limits in Ariba Event Management APIs mainly, but also Keelvar Intake and Export APIs, are reached, causing Integrations to fail.

To address this, an Integration Orchestration Solution is introduced using available tools in SAP CPI.  The major aspects of the solution are:

  1. Use of a single JMS Queue shared by all Interfaces utilising the mentioned APIs
  2. Use of single Router IFlow that sequentially and synchronously processes messages in the JMS Queue
  3. Use of Connectors to Ariba and Keelvar APIs that are rate-limit aware and automatically pause if limits are reached.

Overall, this solution provides a robust, controlled, and extensible foundation for managing multiple API-based integrations between Ariba and Keelvar, ensuring operational stability and compliance with API usage policies in Ariba and Keelvar. And furthermore, this solution can be extended if and when further Integrations need to be implemented that utilise Ariba and Keelvar APIs, in addition to the 3 interfaces that currently ( as of 24-October-2025 ) utilise this:

IDDescription
ERP-108Synchronisation of Sourcing Events created and updated in Ariba to Keelvar
ERP-137Synchronisation of Award Bids and Bid Sheets from Keelvar to Ariba
ERP-138Notification of Keelvar Event Status changes to Ariba


Description

Ariba Event Management API contains both intake and export endpoints supporting Ariba Strategic Sourcing Platform to read, create and update Sourcing events, Scenarios and Awards. The Event Management API requests are rate-limit controlled as shown below:

Time limitsNumber of Requests
Per second5
Per minute80
Per Hour3500


Keelvar Intake and Export APIs are two different sets of API Services that are utilised with the JMS Queue solution, with separated rate-limits:

In addition, Keelvar provides a Webhook management API which is utilised in the Event Management Orchestration between Ariba and Keelvar. However, this set of APIs do not have a published Rate-Limit controls and described in a separate document here.

To manage this constraint, the solution described in this document provides a framework to orchestrate the APIs to enable Integration implementations that can avoid or recover from rate-limiting exceptions as well as well as to handle exceptions such as data errors, service unavailability etc.

When using this solution, the following guiding principles need to be applied in the IFlows pertaining to the Integration:


Functional Overview



StepFunction
1Multiple upstream IFlows push messages into a shared JMS Queue.
2A Router IFlow reads messages from JMS sequentially (single-threaded).
3Each message is routed to a specific ProcessDirect endpoint (e.g., Ariba, Keelvar).
4Connector IFlows invoke external APIs with authentication and headers.
5If rate limits are reached, the connector pauses and retries after cooldown.
6Reprocessing occurs for transient failures; messages exceeding retry thresholds are ignored.

High Level Architecture


[Upstream Systems]
       │
       ▼
   [CPI IFlows]
       │
   (Write to JMS Queue)
       ▼
    [JMS Queue]
       │
 (Single-thread Reader)
       ▼
 [Router IFlow]
   ├──> pd:/Ariba/EventConnector
   └──> pd:/Keelvar/ApiConnector
             │
             ▼
      [External APIs]

Key Components

Component    Description
SAP CPI JMS Queue    Buffers messages to control API call rates. Single-threaded reader enforces sequential processing.
Router IFlow    Reads from JMS queue, determines routing path using headers (ProcessDirect).
ProcessDirect IFlows    Downstream IFlows for specific integration logic (Ariba, Keelvar).
Connectors    Handle API authentication (OAuth2), request building, and rate-limit enforcement.
Rate Control Mechanism    Induces pauses if rate-limit headers show exhaustion.
Error & Retry Handling    Managed via JMS retry logic and manual reprocessing of DLQ messages.


Technical Details

Integration Design

JMS Queue Configuration


PropertyValue / Description
Queue TypeStandard
Concurrent Consumers1 (single-threaded)
Retry CountConfigurable (e.g., 5 attempts)
Dead Letter QueueEnabled
Visibility TimeoutBased on processing time

Router IFlow

ProcessDirect IFlows

Connector IFlows


FunctionDescription
AuthenticationOAuth2 Client Credentials flow using CPI Security Material.
Header ManagementAdds Authorization, Content-Type, and API-specific headers.
Rate LimitingIf API returns a header like X-RateLimit-Remaining=0, connector pauses using Groovy Thread.sleep().
Retry LogicRetries with exponential backoff within JMS constraints.

Configuration Parameters


ParameterDescriptionExample
JMS.QueueNameQueue used for execution throttlingARIBA.KEELVAR.JMS.Q
MaxRetryCountMaximum reprocessing attempts5
RateLimitPausePause duration (seconds) when limit reached10
ProcessDirect.AribaPath to Ariba connectorpd:/Ariba/EventConnector
ProcessDirect.KeelvarPath to Keelvar connectorpd:/Keelvar/ApiConnector
OAuth.ClientIDOAuth2 Client ID{{Keelvar_ClientID}}
OAuth.TokenURLToken endpointhttps://api.keelvar.com/oauth/token

Error Handling & Retry Strategy


ScenarioAction
Temporary API Failure (HTTP 429/503)Pause and retry after wait time.
Permanent API Error (HTTP 400/401/404)Log to MPL and move to DLQ.
JMS Retry ExhaustedMessage flagged as ignored; alert triggered.
Rate-Limit ExceededConnector pauses until limit resets.

Security Considerations


Monitoring & Observability


ToolUsage
CPI Message MonitoringTrack message status, errors, and retries.
JMS Queue MonitorCheck pending, in-flight, and DLQ messages.
MPL LogsTrack API call results and pause events.
Splunk / External MonitoringOptional integration for audit and security visibility.

Future Enhancements