axelson

axelson

Scenic Core Team

17) ElixirConf US 2018 – Building Video Chat with Elixir & Phoenix – Anil Wadghule

ElixirConf US 2018 – Building Video Chat with Elixir & Phoenix – Anil Wadghule (@anildigital)

In this talk, I will share my experience and learnings about how I built a production-grade video chat system with Elixir and Phoenix.

My video chat app makes use of following features of Elixir and Phoenix.

Real-time with Phoenix channels
How a Video Chat benefits with real-time features of Phoenix framework. In a Video Chat app, there are so many interactions which happen in a group, so you need real-time capabilities on your server.

Agents, Tasks, GenSevers
How I used Agents to wrap the state, I need to talk to a third party server, how I used Tasks to perform certain operations, how I used GenServers for long-running features like Cache servers and recorded media file uploaders.

Supervisors
Instead of crashing, how we gracefully stop services. When users close tabs, other users in video chat should be gracefully informed that users have quit. I will cover, how we make use of supervisors and GenServers for the use case.

GenStage for events processing with a remote WebRTC media server
Third party media server has API and continually sends different events such as network is slow, user’s video is unpublished or audio went off etc. We will see how I make use of GenStage’s event handling to show user’s feedback interactively.

Debugging
We will see how Erlang’s debugging tools come in handy when there is something wrong.

Audience: Intermediate, Advanced
Topics: phoenix, video-streaming, webrtc

All talks are available in the ElixirConf US 2018 Talks List or via the elixirconf2018 tag

Most Liked

maz

maz

I found it!

AstonJ

AstonJ

Cool talk Anil! I might have to pick your brains one day as I will probably experiment with video chat at some point :003:

How is this solution scaling for you at Scatter? Not sure if you can mention numbers and server stats but I’d be interested in hearing how this is deployed :slight_smile:

maz

maz

No, I’m pretty sure it was a different guy. I will look around on YouTube and if I find it I will post the link here.

nikhilmore54

nikhilmore54

thanks @maz for sharing this video link. this is quite interesting.

Where Next?

Popular in Talks Top

axelson
ElixirConf 2017 - Elixir as a first language - Alexis Huefner What would it be like to use Elixir as your fi...
New
axelson
by @chrismccord My summary: Chris gives an update and copious demos of Phoenix LiveView which is now released on hex.pm. Demos on: ...
New
CodeSync
Code Sync: Writing much better tests in Elixir by Xochitl Pérez | Code BEAM Lite Mexico 2023 Comments welcome! View the <span class="has...
New
axelson
ElixirConf 2017 - Streaming Video with Elixir - @johnwahba Running a video stream is challenging. You can’t ...
New
axelson
ElixirConf 2017 - Day 2 Morning Keynote - @josevalim All talks are available in the Elixir Conf 2017 Talks ...
New
axelson
ElixirConf US 2018 – Behavior Trees and Battleship: Tapping into the Power of Advanced Data Structures – Jeff Schomay I ...
New
axelson
ElixirConf US 2018 – Take Your Time – Ben Marx (@bgmarx) OTP20 officially introduced dirty schedulers. In this talk, we’...
New
axelson
Consistent, Distributed Elixir - @keathley Elixir and Erlang provide powerful mechanisms for building systems that are alw...
New
JuanjoA
Hi, I don’t know if I have the post in the right place. I put here in case you might be interested, I am not the author, I just found it...
New
New

Other popular topics Top

aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
sergio
I couldn’t find any guides that worked well with Phoenix 1.6.0 and esbuild. I hope this helps people test the waters and eases you into t...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New

We're in Beta

About us Mission Statement