Building and scaling a live event platform with django-channels
05-30, 14:00–14:30 (Europe/London), Music Hall

Channels has been around for a while now and we’ve built a virtual event platform with it. Let’s have a look at the challenges involved in serving thousands of concurrent users with it.


Video: https://youtu.be/NdRB9-Xtl9M

Since django-channels has been released in 2015, async support has been a hot topic around the Django community and over the years, we have seen lots of introductory talks and tutorials on how to get started with channels and websockets. In lots of them, including the official channels tutorial, the example use case is implementing a simple chat server.

So when the pandemic hit the event industry in 2020, we did just that. We’ve implemented Venueless, a BSL-licensed interactive event platform that integrates the entire stack required to run a remote conference, including talks, workshops, and direct participant interaction. Among the core ingredients are a chat feature, Q&A tooling, and audience reactions, as well as live streaming and video calls. If you’ve joined DjangoCon 2022 remotely, you have used it before.

Our backend is entirely implemented using django-channels. When we started taking on events with thousands of attendees, we learned a lot about the scaling properties of django-channels that we want to share with you, including

  • How to load test and benchmark websocket-based applications
  • How to avoid critical bottlenecks in your application
  • How to scale your setup across multiple machines
  • How to deploy updated software with little user interruption and without everyone reconnecting at the same time

Raphael is an experienced software developer who has been using Django as his favourite tool for web development for the last ten years. Over the years, he has created a number of Django-based applications, such as pretix, a fully-featured open source application for selling event tickets, or Venueless, a web platform for virtual events. As his day job, he is the CEO of a small software company that continues to develop and distribute these applications. Raphael has been involved with the Django community for a while and co-hosted DjangoCon Europe 2018 in his hometown of Heidelberg, Germany.