Artwork

תוכן מסופק על ידי CCC media team. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי CCC media team או שותף פלטפורמת הפודקאסט שלהם. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.player.fm/legal.
Player FM - אפליקציית פודקאסט
התחל במצב לא מקוון עם האפליקציה Player FM !

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

18:13
 
שתפו
 

Manage episode 514395341 series 1330870
תוכן מסופק על ידי CCC media team. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי CCC media team או שותף פלטפורמת הפודקאסט שלהם. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.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

2449 פרקים

Artwork
iconשתפו
 
Manage episode 514395341 series 1330870
תוכן מסופק על ידי CCC media team. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי CCC media team או שותף פלטפורמת הפודקאסט שלהם. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.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

2449 פרקים

Wszystkie odcinki

×
 
Loading …

ברוכים הבאים אל Player FM!

Player FM סורק את האינטרנט עבור פודקאסטים באיכות גבוהה בשבילכם כדי שתהנו מהם כרגע. זה יישום הפודקאסט הטוב ביותר והוא עובד על אנדרואיד, iPhone ואינטרנט. הירשמו לסנכרון מנויים במכשירים שונים.

 

מדריך עזר מהיר

האזן לתוכנית הזו בזמן שאתה חוקר
הפעלה