In dieser Serie diskutieren wir interessante Themen aus Software-Entwicklung und -Architektur – immer mit dem Fokus auf Praxistauglichkeit.
…
continue reading
محتوای ارائه شده توسط CCC media team. تمام محتوای پادکست شامل قسمتها، گرافیکها و توضیحات پادکست مستقیماً توسط CCC media team یا شریک پلتفرم پادکست آنها آپلود و ارائه میشوند. اگر فکر میکنید شخصی بدون اجازه شما از اثر دارای حق نسخهبرداری شما استفاده میکند، میتوانید روندی که در اینجا شرح داده شده است را دنبال کنید.https://fa.player.fm/legal
Player FM - برنامه پادکست
با برنامه Player FM !
با برنامه Player FM !
Scaling Real-Time in NeoBoard: Our Journey from P2P to MatrixRTC + LiveKit (matrix-conf-2025)
Manage episode 514395341 series 1330870
محتوای ارائه شده توسط CCC media team. تمام محتوای پادکست شامل قسمتها، گرافیکها و توضیحات پادکست مستقیماً توسط CCC media team یا شریک پلتفرم پادکست آنها آپلود و ارائه میشوند. اگر فکر میکنید شخصی بدون اجازه شما از اثر دارای حق نسخهبرداری شما استفاده میکند، میتوانید روندی که در اینجا شرح داده شده است را دنبال کنید.https://fa.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
2450 قسمت
Manage episode 514395341 series 1330870
محتوای ارائه شده توسط CCC media team. تمام محتوای پادکست شامل قسمتها، گرافیکها و توضیحات پادکست مستقیماً توسط CCC media team یا شریک پلتفرم پادکست آنها آپلود و ارائه میشوند. اگر فکر میکنید شخصی بدون اجازه شما از اثر دارای حق نسخهبرداری شما استفاده میکند، میتوانید روندی که در اینجا شرح داده شده است را دنبال کنید.https://fa.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
2450 قسمت
همه قسمت ها
×به Player FM خوش آمدید!
Player FM در سراسر وب را برای یافتن پادکست های با کیفیت اسکن می کند تا همین الان لذت ببرید. این بهترین برنامه ی پادکست است که در اندروید، آیفون و وب کار می کند. ثبت نام کنید تا اشتراک های شما در بین دستگاه های مختلف همگام سازی شود.