We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
ElixirConf 2023 - Michał Śledź - Rewrite Pion in Elixir
Rewrite Pion in Elixir: Overcoming WebRTC Drawbacks and Building a Scalable Solution
- The speaker decided to rewrite Pion in Elixir due to drawbacks in the existing WebRTC implementation in Membrane.
- Tern server is a simple concept that forwards traffic from one side to the other.
- In the current implementation, listener processes are bounded to the same IP address and port, which can be a bottleneck.
- The reuse port option for sockets allows for multiple sockets to be created, bounded to the same IP address.
- The speaker emphasizes the importance of logs and telemetry in the development process.
- The Elixir WebRTC project is being developed to provide a pure Elixir WebRTC API and Membrane wrapper.
- The project currently supports role conflict resolution, different types of candidates, transaction pacing, and keep-alikes.
- The speaker highlights the need to automate benchmarks and deployment, and to test at a real scale.
- The current implementation is able to handle 2,000 connections, but the journey was not easy.
- The speaker notes that the maximum throughput on a Tern server is about 1 gigabit per second.
- The project is still looking for a better network path and is debugging issues with mutexes.
- The speaker mentions that the code is publicly available and that the team is willing to debug and fix issues.
- The team is planning to start working on RTP and RTCP protocols soon.
- The speaker encourages the audience to ask questions and provide feedback.
- The project’s goal is to provide a high-quality WebRTC implementation that is easy to use and scalable.
- The speaker emphasizes the importance of not optimizing too early and of using telemetry and logs to understand the system’s behavior.
- The team is planning to release the first pre-connection skeleton version in four months.