How Mux uses Elixir
Mux engineer Dylan Jhaveri describes a Phoenix public API and a real-time dashboard powered by WebSockets and Channels. Elixir handles API work, asynchronous jobs and rate limiting, while Go services do CPU-intensive video processing.
The team used the exq library for background jobs within the application supervision tree. This is a useful division of responsibilities: Elixir coordinates requests and application behavior, while the video infrastructure does the encoding.