DjangoCon Europe 2023 | Building and scaling a live event platform with django-channels
Building and scaling a live event platform with django-channels by Raphael Michel https://pretalx.com/djangocon-europe-2023/talk/MYWHXB/
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.
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
Date Added: September 19, 2024
Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.