Newer Version Available
Message Reliability
As of API version 37.0, Streaming API provides reliable message
delivery by enabling you to replay past events. In API version 36.0 and earlier, clients might not
receive all messages in some situations.
In API version 37.0 and later, Streaming API stores events for 24 hours, enabling you to replay past events. With durable streaming, messages aren’t lost when a client is disconnected or isn’t subscribed. When the client subscribes again, it can fetch past events that are within the 24-hour retention period. The ability to replay past events provides reliable message delivery.
In API version 36.0 and earlier, Streaming API doesn’t maintain client
state nor keeps track of what’s delivered. The client might not receive messages for
several reasons, including:
- When a client first subscribes or reconnects, it might not receive messages that were processed while it wasn’t subscribed to the channel.
- When a client disconnects and starts a new handshake, it could be working with a different application server, so it receives only new messages from that point on.
- Some events are dropped when the system is being heavily used.
- If an application server is stopped, all messages being processed but not yet sent are lost. Clients connected to that application server are disconnected. To receive notifications, the client must reconnect and subscribe to the topic channel.