as you said, from the second client subscribing to a certain item on, the initial snapshot will be handled by the kernel, so you don't have to prepare the initial snapshot for such clients.
The server will keep a snapshot that will be getDistinctSnapshotLength long and will give it to any new client subscribing to such item.
Each time a new real-time update is published for the item, the server will update the snapshot, removing (if necessary) the oldest update and adding the new one.

So, you don't need to send by yourself the initial snapshot to all the clients.