Each service interface of the DSNA business services relies on the concept of AMQP queues and topics.
- The customer shall use an implementation of the AMQP 1.0 specification to connect to the DSNA provider endpoint.
- The DSNA provider endpoint is an AMQP 1.0 broker managing queue and topics.
The message payloads are encoded following a protobuf format.
The customer acts as requester and subscriber. The DSNA provider acts as responder and publisher.
Concerning publish-subscribe, the customer subscribes to a DSNA distribution service by directly listening to an appropriate AMQP topic, which name follows the DSNA derivation rules.
The customer requests on the Subscription management queue the creation of a new subscription. The DSNA provider returns on the Reply queue, the address of the Publication queue(s) to receive data (one queue per type of subscribed data).
The subscribers can filter the messages they want to receive by using the filter parameters defined for each subscription operation.
N.B:
- If the DSNA platform restarts while the Customer is connected to the AMQP Broker, the current repository of messages is published again.
- The acknowledgement that a Customer receives to his request (RequestReport) may be received after the data distribution that this request has triggered, as these two messages are managed asynchronously by AMQP Queues and Topics.
- More generally, since the distribution events from different services are asynchronous (independent topics), they may be received in a few ms before reaching consistency.
Concerning request-reply (used for subscription technical operations or management operations) the DSNA customer sends a request by sending a message to an appropriate AMQP queue, which name follows the DSNA derivation rules, to make a request. The request message contains the name of the queue into the DSNA customer listens and in which the reply from the DSNA provider is expected.