Performance: Subscriber Acknowledgments

Consumers might acknowledge messages synchronously or asynchronously.

If the acknowledgment mode is synchronous, the consumer blocks until it receives confirmation from FTL server that the acknowledgment has been stored.

  • If your code enables explicit acknowledgments, the consumer blocks whenever your code issues an acknowledgment call.

  • Otherwise, the FTL library issues a blocking acknowledgment call after your dispatch callback returns. The next dispatch callback cannot proceed until the acknowledgment succeeds or fails.

If the acknowledgment mode is asynchronous, the FTL library transmits the acknowledgments in the background when one of the following is true:

  • The configured timer interval has elapsed.

  • The configured acknowledgment batch size is reached.

Synchronous acknowledgments reduce the chance of duplicate message delivery at the cost of additional latency in the acknowledgment call. If the acknowledgment mode is asynchronous, and the consumer application fails before the FTL library transmits the acknowledgments, those messages are re-delivered the next time a consumer connects.

For more information, see Acknowledgment Mode.