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.