Artwork

Inhalt bereitgestellt von CCC media team. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von CCC media team oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.
Player FM - Podcast-App
Gehen Sie mit der App Player FM offline!

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

18:14
 
Teilen
 

Manage episode 514393656 series 1910928
Inhalt bereitgestellt von CCC media team. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von CCC media team oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.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

1783 Episoden

Artwork
iconTeilen
 
Manage episode 514393656 series 1910928
Inhalt bereitgestellt von CCC media team. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von CCC media team oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.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

1783 Episoden

Усі епізоди

×
 
Loading …

Willkommen auf Player FM!

Player FM scannt gerade das Web nach Podcasts mit hoher Qualität, die du genießen kannst. Es ist die beste Podcast-App und funktioniert auf Android, iPhone und im Web. Melde dich an, um Abos geräteübergreifend zu synchronisieren.

 

Kurzanleitung

Hören Sie sich diese Show an, während Sie die Gegend erkunden
Abspielen