Progress Events API
The Compute Interface includes a web socket-based API for tracking the progress of a job that has been submitted with the REST API.
This Progress Events API allows a client to listen for the following types of events:
- Job status changes
- Run log updates
- Callbacks
The Progress Events API provides additional capabilities beyond the REST API (e.g. callbacks) and represents a more scalable and efficient mechanism for monitoring progress of a job than polling with the REST API.
The expected sequence for using the REST and Progress Events APIs in conjunction is:
- Authenticate with the REST API to acquire a bearer token.
- Create the web socket connection with the Progress Events API and bearer token to acquire the connection-id value for the new connection.
- Submit job with the REST API, including the connection-id header to associate the job with the web socket connection.
- Handle progress event messages from the server via the web socket and respond to callbacks.
- Retrieve the results for the job with the REST API.
- Delete the job with the REST API.
There is an additional step required periodically which is to refresh the bearer token for the REST API requests and send the UPDATE_TOKEN message to keep the web socket connection alive.