Acknowledgment Conflation and Publish Acknowledgements

For some commands, AMPS will conflate acknowledgments and return acknowledgments for multiple commands at one time. When AMPS conflates acknowledgments, AMPS provides an identifier other than the command identifier that describes which commands the acknowledgment applies to.

For example, when a transaction log is configured (with at least one topic recorded), AMPS conflates persisted acknowledgments in response to publish commands and sow_delete commands. These conflated acknowledgments contain the last client sequence number that the acknowledgment applies to rather than the command identifiers or sequence numbers for all messages being acknowledged. For example, if an application publishes messages with sequence numbers 1, 2, 3, 4, and 5, and message 3 fails due to entitlement restrictions, AMPS will return an ack indicating success for message 2, an ack indicating failure for message 3, and an ack indicating success for message 5.

By default, AMPS produces conflated acknowledgments for a given connection approximately once a second.

Starting with version 5.2.3.0, AMPS allows configuration of the conflation interval. To set a different conflation interval:

  • For an individual client, provide an ack_conflation option in the options string for the logon for that client. This sets the interval at which AMPS will provide acknowledgments to that client.

  • For replication acknowledgments, specify the AckConflationInterval in the replication Destination. This sets the interval at which the downstream AMPS server will provide acknowledgments to this AMPS server.

Notice that when a publisher is publishing to a replicated topic, the ack_conflation interval sets the interval at which AMPS acknowledges messages that have already been acknowledged by synchronous replication destinations, while the AckConflationInterval specifies how often those downstream destinations produce an acknowledgment. In a situation where it is important to reduce the default latency of an acknowledgment, both the server option and the client side option typically need to be set.

The AMPS client libraries use persisted acknowledgements to manage reliable publishing when a publish store is configured. The persisted acknowledgements allow the library to remove messages that have been safely persisted by AMPS (or that have produced an error). See the Developer Guides for details.

To see more information about the different commands and their supported acknowledgment types, please refer to the AMPS Command Reference, provided with 4.0 and greater versions of the AMPS clients and available from the 60East documentation site at http://docs.crankuptheamps.com/.

Last updated

Copyright 2013-2024 60East Technologies, Inc.