How does the client know when to sync? Does it poll?
Typically, servers send a poke (a content-less hint) over a websocket to tell the client to sync. There are many services you can use for this, and since no content flows over the socket there is no security/privacy concern. See the integration guide for more information.
Replicache also polls at a low interval (60s by default) in case the poke mechanism fails or for applications that don't require low latency updates. You can adjust this using the pullInterval field.
https://doc.replicache.dev/concepts/faq
pullInterval leads to 404 https://doc.replicache.dev/concepts/api/interfaces/ReplicacheOptions#pullInterval