Performance: Publisher Send Mode

When an application publishes a message, that message is associated with a persistence store. (In the destinations messaging model, each destination is associated with a persistence store. In the content matching model, each endpoint is associated with a persistence store.)

As part of the configuration for a persistence store, specify a publisher mode, which affects the behavior of the application’s send call. There are two choices:

  • Store - Confirm - Send (“store_confirm_send”): The send call waits for confirmation from the FTL server that the message is stored before returning.

  • Store - Send (“store_send_noconfirm”): The send call returns immediately. The application never receives any confirmation from the server that the message was stored (or not).

Most applications must use “store_confirm_send” for their data. In the event of network disruption or other failures, the send operation is automatically retried by the FTL library until it succeeds. This mode offers the most robust message delivery, at the cost of increasing the latency of the send call. (But see Performance: Publisher Send Policy.)

Advanced applications might consider using publisher mode “store_send_noconfirm”, which offers minimum latency for published messages. Keep the following caveats in mind:

  • Messages are lost if the connection to FTL server is disrupted.

  • The application is responsible for throttling its send rate. Messages are lost if the application sends messages faster than the server can receive or process the data.

For details on how to configure the publisher mode, see Stores Grid.