Veeps Streaming Service Scalability Case Study with Elixir

234
clicks
Veeps Streaming Service Scalability Case Study with Elixir
The article presents a case study of Veeps, a streaming service that needed to scale up to accommodate massive numbers of concurrent users. Initially, Veeps' backend was built with Ruby on Rails and could handle thousands of viewers, but this was not enough for the anticipated growth. Upon his arrival, Vincent Franco, the new CTO with a background in high-volume systems, turned to Elixir for its proven scalability in other projects. The transition to Elixir involved rewriting the system over eight months with help from DockYard and hiring an in-house engineering team. With Elixir and Phoenix, including Phoenix Channels and LiveView, Veeps significantly reduced their infrastructure needs, allowing 2 Elixir nodes to replace the 20 Rails nodes previously used, handling 83 times more concurrent users. The system's architectural simplicity, facilitated by Elixir's distributed capabilities, allowed them to organize the codebase into a monorepo using Umbrella Projects and drastically simplify deployment. Elixir's ecosystem provided built-in solutions, including GenServer for shopping cart management, ETS for high-performance caching, Broadway for data ingestion and processing pipelines, and Oban for background jobs. Veeps also experienced a smooth interaction between the front-end and back-end developers thanks to LiveView, which provided a developer-friendly alternative to traditional API work. The article concludes with Vincent Franco praising the exceptionally positive developer experience, the system's architectural robustness, and the productive environment Elixir created for the team.

© HashMerge 2024