2 / 2
Jun 2024

We can see that Device sync is based on WebSockets:

https://www.mongodb.com/docs/atlas/app-services/sync/details/protocol/#network-security The SDK synchronizes with the application server over a WebSocket connection secured by HTTPS using [TLS 1.3.](https://datatracker.ietf.org/doc/html/rfc8446)

We can see that Services can only accept 5000 concurrent connection:

https://www.mongodb.com/docs/atlas/app-services/reference/service-limitations/#concurrent-workloads You can have up to 5,000 concurrent Sync connections. See Request Traffic.

If I have 100 000 app running at the same time.
Does that mean that we can only have 5000 applications concurrently in sync with the server? And the 95000 other will net get new data.

Or can we have 100 000 applications with realm sync connected, but only 5000 of them can sync at a time and they need to share the resource? In that case a rolling connection will ensure that all 100k devices get synced in turn.

If that’s the case, a slow network and a large data can make datasync slow and get the devices out of sync?

There’s the following clarification a bit further down on that page:

App Services can handle requests many times the above limits. However, these limits are put in place to ensure applications scale responsibly and to prevent DOS attacks and unintended billing charges.

You can request a higher limit by filing a support ticket.