Surely this is a simple question.

I'm using Lightstreamer-Server/6.0.3 build 1803. I'm having a lot of trouble understanding what the isSnapshotAvailable method for (in the DataAdapter interface).

I've read the documentation and JavaDocs, but still can't make sense of it. Let me put an example:

Client 1 connects to element A, we have isSnapshotAvailable to true, so in the subscribe method, we call listener.update("A", hashMap, true) and then we finish by calling the endOfSnapshot method. All good.

Client 1 has a snapshot of the data for A, and we'll start streaming data to him, like this:
listener.update("A", hashMap, false). See that the isSnapshot flag is false now.

Now Client 2 connects to element A. As that element is already subscribed, LightStreamer won't call the subscribe method, but will directly start streaming, and receive the latest values sent to Client A.

So what's the point of the snapshot in the first place? I could just skip the snapshot and send item updates, what's the use case for a snapshot?

Page 38 of
http://www.lightstreamer.com/docs/base/General%20Concepts.pdf explains the flow, and as you can see when client 2 connects, he doesn't receive the snapshot, but the latest value.

Can you think of a good reason for using snapshots? Building the initial state can be done by sending updates without the snapshot flag, so... what's the point?

I basically want to understand what's the advantage and benefits of using them, and how they behave with multiple clients connected to the same element.

Thanks a lot.