RSX

Request Status Extension (RSX) is a Kaa service that allows connected clients to retrieve the status of 1/KP-based message by its Request ID.

Interfaces

RSX supports a number of interfaces to perform its functional role. The key supported interfaces are summarized in the following diagram.

RSX interfaces diagram

For inter-service communication, Kaa services mainly use REST APIs and messaging protocols that run over NATS messaging system.

Request status extension interface

This interface provides a method for connected endpoints to retrieve message statuses. To do so using the 1/KP protocol integration with the KPC, the client needs to issue an empty request to the following resource path:

kp1/<appversion_name>/<rsx_extension_instance_name>/<endpoint_token>/<message_extension_instance_name>/<message_request_id>

For example:

kp1/kettle-v1/rsx/oolaiY5P/dcx/234531

This is the request for the status of the message published to the DCX on the topic:

kp1/kettle-v1/dcx/oolaiY5P/json/234531

A successful response will be published to the /status topic:

kp1/<appversion_name>/<rsx_extension_instance_name>/<endpoint_token>/<message_extension_instance_name>/<message_request_id>/status

e.g.
kp1/kettle-v1/rsx/oolaiY5P/dcx/234531/status

A successful response payload contains the message Request ID, execution status code, and reason phrase. For example:

{
  "requestId":234531,
  "statusCode":200,
  "reasonPhrase":"Ok"
}

An error response will be published to the /error topic:

kp1/<appversion_name>/<rsx_extension_instance_name>/<endpoint_token>/<message_extension_instance_name>/<message_request_id>/error

e.g.
kp1/kettle-v1/rsx/oolaiY5P/dcx/234531/error

An error response format described here.

RSX stores the configured by MAX_RECORD_COUNT amount of requests and automatically clean up the old values.

Management interface

RSX exposes an HTTP-based management interface with the following endpoints:

  • GET /health returns 200 OK if the service is up and running properly, and 503 Service Unavailable otherwise. This endpoint can be used by Kubernetes for liveness and readiness probing.