Hi,
We are observing an intermittent and unexplained duplication of HTTP requests within an Application Integration flow.
The Application Integration utilizes a reusable sub-integration to manage all HTTP requests via a configured HTTP Connector. Crucially, this sub-integration does not implement any retries.
For the POST requests, particularly the second one, we are sporadically seeing a second, identical request being generated after the first call. This duplication occurs even when the first call is successful (returns a 200 OK) or when it returns an error.
-
Observation Conflict: Connector logs confirm that two distinct requests are being sent to the target system. However, the Application Integration’s execution log only records a single sub-integration/HTTP call.
-
Analysis: There is no logic within our Application Integration that dictates or explains the generation of a second request. Furthermore, a retry mechanism should not be activated following a successful 200 OK response.
To prevent data loss, Http Connector has this internal logic to an “at-least-once” delivery guarantee and retries the request. Evidence suggests the connector is timing out internally and reattempting the POST request despite the original GET request success (200 OK). This behavior is causing idempotency issues on the backend.
A more robust architecture is required to prevent these internal timeouts and subsequent retry scenarios, and right now we are trying to find a different solution to solve this problem.
The actual architecture involves a flow starting with the Client System, which sends a request to Apigee. This request, in turn, activates Application Integration. Application Integration uses an Http Call Handler and an Http Connector to establish communication with Envoy, which is then responsible for routing the traffic to the final Target Backend System.
Your input is highly valued.
Cheers.