Asynchronous requests

Asynchronous requests are primarily used for one-way, event-based data streams where systems SEND or RECEIVE data. You can think of these like CRUD type of requests you want to send to or receive from your connection's EHR system.

Recoverable messages

For asynchronous requests, we use recoverable messages to ensure delivery. We save these messages into highly durable queues so that they can survive restarts or other failures. We don't respond with a 200 OK status unless we successfully saved the message in a highly durable queue first.

Read about our business continuity and disaster recovery plan.

Sequencing of asynchronous events

Your request is delivered via Redox to the desired integration using a first-in, first-out (FIFO) method. We work to maintain the order of requests to one of your integrations as they were sent. 

One caveat to that, though, is that sometimes messages are processed in parallel prior to being sent in FIFO order. Because of this, the message ID and transmission ID shouldn’t be used to sequence requests sent to a particular endpoint, especially when they rely on different data models or FHIR® resources. Instead, you should use the timestamp for when the data arrived at the endpoint to sequence it against other asynchronous requests.

If failures happen during processing, we pause the queue for the intended endpoint so that we can maintain FIFO delivery after the issue is resolved.

Meanwhile, we send a notification to the sender or receiver, depending on where the failure occurred. Either way, the notification goes to the Alert Email, which is listed in the Organization Profile of the Redox dashboard.

Responses to SEND

Some packages don’t get to their intended destination. Amazon knows this well. 

Sometimes your asynchronous requests also don’t get to their intended endpoint(s). The good news is that we can let you know whether your request arrived safely. Keep in mind that since asynchronous requests are one-way, you won’t get a response back from your connection's system (much like Amazon doesn’t get thank you packages for successfully delivered orders). 

Any responses to asynchronous requests are from Redox specifically about your outgoing request. And if your one request went to multiple endpoints, you still receive only one overall response to your asynchronous request. Check out the details about each scenario below.

Responses to RECEIVE

When you receive a data payload from your integration, we rely on you to send us back an HTTP status code to let us know whether your system received it successfully. We wait for your response before deciding what to do next.