In order to receive data from a source system via Redox (one-way), you should first set up your destination configuration as described in Processing Requests (Destination).

For asynchronous, one-way event stream traffic, Redox guarantees “first in, first out” order and at least once delivery of every data payload. As such, we rely on the response code returned from your destination system in order to determine whether to send the next payload or retry the last.

Status Codes

Specifically, when Redox receives a successful status code, the system behaves differently than if it receives an unsuccessful code:

200OK, Send Next

Redox waits to receive a 200 status code from your system before sending the next data payload. A 200 response indicates that your system has successfully processed the most recent data received and is ready for the next payload.

>= 400Pause and Try Again

If Redox receives an unsuccessful status code equivalent to >= 400, the system will:

  1. Immediately pause the data feed for the relevant subscription

  2. Start queuing data sent from the source to send later

  3. Schedule the failed request to be retried continuously, with a scheduled back-off period
    (more details on automatic retries can be found here: Logs)

When the failed request being retried succeeds, the data feed will be unpaused and the next payload will be sent as normal.

Non-critical Errors

In some cases, depending on your application workflow, you may consider sending back a 200 to Redox for non-critical errors that can be triaged or resolved at a later time.

This helps to ensure continuity of data delivery to your system in the event that it gets hung up on a single troublesome data payload.