Artwork

A tartalmat a CCC media team biztosítja. Az összes podcast-tartalmat, beleértve az epizódokat, grafikákat és podcast-leírásokat, közvetlenül a CCC media team vagy a podcast platform partnere tölti fel és biztosítja. Ha úgy gondolja, hogy valaki az Ön engedélye nélkül használja fel a szerzői joggal védett művét, kövesse az itt leírt folyamatot https://hu.player.fm/legal.
Player FM - Podcast alkalmazás
Lépjen offline állapotba az Player FM alkalmazással!

Scaling Real-Time in NeoBoard: Our Journey from P2P to MatrixRTC + LiveKit (matrix-conf-2025)

18:14
 
Megosztás
 

Manage episode 514393656 series 1910928
A tartalmat a CCC media team biztosítja. Az összes podcast-tartalmat, beleértve az epizódokat, grafikákat és podcast-leírásokat, közvetlenül a CCC media team vagy a podcast platform partnere tölti fel és biztosítja. Ha úgy gondolja, hogy valaki az Ön engedélye nélkül használja fel a szerzői joggal védett művét, kövesse az itt leírt folyamatot https://hu.player.fm/legal.
[NeoBoard](https://neoboard.io/) is an open source real-time collaborative whiteboard built on the Matrix protocol. It functions both as a widget within chat-focused Matrix clients like Element Web, and as a standalone web app that acts as a lightweight, whiteboard-centric Matrix client In this talk, we’ll share how we migrated NeoBoard’s real-time collaboration feature from a peer-to-peer WebRTC implementation to MatrixRTC with a LiveKit backend, a shift that was key to scaling to hundreds of concurrent users. We’ll cover the challenges we faced, the lessons we learned, and the architectural decisions that made the transition smooth. We’ll also touch on what’s still missing and what’s next for both NeoBoard and MatrixRTC. NeoBoard’s use of the Matrix protocol provides a replicated data store for CRDT-based events exchanged between all users collaborating in a whiteboard session. These custom events encapsulate shape and drawing data and are shared via the room timeline, enabling clients to reconstruct a consistent, persistent view of the board over time, even across network disconnections or when joining later. However, while this model ensures eventual consistency, it falls short for real-time interactions that require low-latency feedback, such as live cursor movement or simultaneous drawing. For these use cases, a dedicated real-time transport layer is essential. Using WebRTC, we initially added a real-time layer to NeoBoard that enabled low-latency peer-to-peer communication between users. However, this relied on a full-mesh topology, where each client maintains direct data channels with every other participant. This architecture quickly becomes unsustainable as the number of users grows, due to quadratic bandwidth and connection overhead. Additionally, WebRTC depends on ICE negotiation using STUN and TURN servers to establish connectivity across NATs and firewalls, which is often unreliable and can introduce additional latency and server load. The resulting variability in connection quality and resource usage made it difficult to deliver a consistent experience at scale. Given the success of Element Call's adoption of MatrixRTC and LiveKit, we decided to move forward with an alternative real-time data layer based on these technologies that, given enough backend resources, can scale indefinitely. In this talk, we’ll cover: - The architecture and design of NeoBoard’s real-time layer - An overview of relevant MatrixRTC spec proposals and their role in our migration - Implementing MatrixRTC with a LiveKit backend, including: - Session membership management - RTC focus handling - Infrastructure considerations and requirements - Live demo - Key challenges and what’s next Licensed to the public under https://creativecommons.org/licenses/by-sa/4.0/ about this event: https://cfp.2025.matrix.org/matrix-conf-2025/talk/TM3ASG/
  continue reading

1735 epizódok

Artwork
iconMegosztás
 
Manage episode 514393656 series 1910928
A tartalmat a CCC media team biztosítja. Az összes podcast-tartalmat, beleértve az epizódokat, grafikákat és podcast-leírásokat, közvetlenül a CCC media team vagy a podcast platform partnere tölti fel és biztosítja. Ha úgy gondolja, hogy valaki az Ön engedélye nélkül használja fel a szerzői joggal védett művét, kövesse az itt leírt folyamatot https://hu.player.fm/legal.
[NeoBoard](https://neoboard.io/) is an open source real-time collaborative whiteboard built on the Matrix protocol. It functions both as a widget within chat-focused Matrix clients like Element Web, and as a standalone web app that acts as a lightweight, whiteboard-centric Matrix client In this talk, we’ll share how we migrated NeoBoard’s real-time collaboration feature from a peer-to-peer WebRTC implementation to MatrixRTC with a LiveKit backend, a shift that was key to scaling to hundreds of concurrent users. We’ll cover the challenges we faced, the lessons we learned, and the architectural decisions that made the transition smooth. We’ll also touch on what’s still missing and what’s next for both NeoBoard and MatrixRTC. NeoBoard’s use of the Matrix protocol provides a replicated data store for CRDT-based events exchanged between all users collaborating in a whiteboard session. These custom events encapsulate shape and drawing data and are shared via the room timeline, enabling clients to reconstruct a consistent, persistent view of the board over time, even across network disconnections or when joining later. However, while this model ensures eventual consistency, it falls short for real-time interactions that require low-latency feedback, such as live cursor movement or simultaneous drawing. For these use cases, a dedicated real-time transport layer is essential. Using WebRTC, we initially added a real-time layer to NeoBoard that enabled low-latency peer-to-peer communication between users. However, this relied on a full-mesh topology, where each client maintains direct data channels with every other participant. This architecture quickly becomes unsustainable as the number of users grows, due to quadratic bandwidth and connection overhead. Additionally, WebRTC depends on ICE negotiation using STUN and TURN servers to establish connectivity across NATs and firewalls, which is often unreliable and can introduce additional latency and server load. The resulting variability in connection quality and resource usage made it difficult to deliver a consistent experience at scale. Given the success of Element Call's adoption of MatrixRTC and LiveKit, we decided to move forward with an alternative real-time data layer based on these technologies that, given enough backend resources, can scale indefinitely. In this talk, we’ll cover: - The architecture and design of NeoBoard’s real-time layer - An overview of relevant MatrixRTC spec proposals and their role in our migration - Implementing MatrixRTC with a LiveKit backend, including: - Session membership management - RTC focus handling - Infrastructure considerations and requirements - Live demo - Key challenges and what’s next Licensed to the public under https://creativecommons.org/licenses/by-sa/4.0/ about this event: https://cfp.2025.matrix.org/matrix-conf-2025/talk/TM3ASG/
  continue reading

1735 epizódok

Semua episode

×
 
Loading …

Üdvözlünk a Player FM-nél!

A Player FM lejátszó az internetet böngészi a kiváló minőségű podcastok után, hogy ön élvezhesse azokat. Ez a legjobb podcast-alkalmazás, Androidon, iPhone-on és a weben is működik. Jelentkezzen be az feliratkozások szinkronizálásához az eszközök között.

 

Gyors referencia kézikönyv

Hallgassa ezt a műsort, miközben felfedezi
Lejátszás