Queue

Implements an asynchronous request queue.

Queue Status Life Cycle

Status Code Description

Requests can be deleted to allow for some housekeeping.

Protocol

The API is non-blocking but asynchronous. The endpoints that request work to be performed on a satellite are delayed. Therefore, it is necessary to establish a protocol that structures the artifacts relevant to query the status of each request. Further, as there are non-controllable factors that can affect response time, it is only an estimate.

Request Response

When a request is performed, information about the status of the request is appended. This can then be used to query the /queue endpoints.

Populated once the request status changes to SENT.

{
  “request”: {
    “request_uuid”: “<request_uuid>”,
    “request_name”: “<endpoint_name>”,
    “request_verb”: “<endpoint_verb>”,
    “request_status”: {
      “status_code”: <status_code_int>,
      “status_name”: “<status_name_string>”
    },
    “created_at” : “<ts_with_tz>”
    “response_eta”: “<ts_with_tz>”,
    “satellite_id”: “<sat_id_string>”,
  }
} 

Once the request changes status to READY, we can see that the response object will be populated in the request queue.

{
  “request”: { … }, 
  “response”: {
    “payload_size”: “<kib_int>”,
    “received_at”: “<ts_with_tz>”,
    “payload”: {},
    “signature”: “<signature_string>”,
    “is_verified”: <is_verified_boolean>”
  }
} 

The responses can be veriefed against the corresponding satellite public signing key found here.

See the queue requests documentation here.

Last updated