Online / 5 & 6 February 2022


Making /sync go fast

A deep-dive into Sync v3

A deep-dive into Sync v3: a super-fast API to sync Matrix clients with their homeserver. The talk is broken up into a brief history of syncing in Matrix to set the scene before we dive into the problem space and explore how Sync v3 is different and how it addresses one of the most important and complex parts of the Client-Server API: syncing.

Sync v3 is the third iteration of the syncing protocol in Matrix. The first was the now-deprecated /initialSync + /events and the second, still in use today, is /sync. We'll explore why the protocol needed to change then and why the protocol needs to change again now. As part of this, we'll look at how servers implement the /sync v2 API and the constraints they have to work with to explain why /sync can be so slow.

Armed with this knowledge, we'll work out the aims/goals of a new hypothetical syncing protocol, along with the competing concerns around complexity, speed, bandwidth and flexibility. We'll then look at the Sync v3 proposal and explore the tradeoffs that were made in its design. This will be complemented with demos and diagrams throughout.


Kegan Dougal