Default Client Acknowledgments
The AMPS client libraries automatically request and automatically process the acknowledgements needed for the library itself to work as expected. This section describes these acknowledgements and the interaction with the AMPS server for these acknowledgements.
Acknowledgements for Query, Subscribe, and Delete
For most command types (with the exception of publish and delta_publish), the AMPS client libraries automatically request a processed acknowledgement. The results of that processed acknowledgement indicate the success or failure of submitting the command to AMPS. The client library waits for the processed acknowledgement to return when submitting the command to AMPS.
The following diagram shows a high level view of the interaction between the AMPS client library and the AMPS server for these commands:
Acknowledgement for Publish Commands
For publish or delta_publish commands, the AMPS client libraries do not automatically request any acknowledgement.
If the AMPS client in use has a publish store enabled (which means that the application is requesting that the publish reliably reach AMPS), the AMPS client will request a persisted acknowledgement to indicate that the message has been durably stored in the AMPS server (and any necessary downstream AMPS servers).
The following diagram shows a high level view of the interaction between the AMPS client library and the AMPS server for these commands when reliable publish is enabled by setting the publish store. Notice that the AMPS client library does not wait for acknowledgements on the messages. Acknowledgement is returned asynchronously. The AMPS client libraries offer an extension point (the failed write handler) for taking application action if a publish fails.