How To Break Django: With Async
2020-09-19, 17:10–17:50, Virtual

Curious how to put your code into a deadlock? Want infinite loops, but in parallel? Or just want a new, exciting kind of data corruption? We'll look at these and other ways that asynchronous code can make you write some spectacularly nasty code, as well as the ways Django tries to save you from these terrible fates.


Django has a reputation for being safe and reliable, but what happens when you take that reputation and push it up against Python's hot new frontier that is asynchronous support?

Asynchronous code has many pitfalls that you won't be used to from traditional, synchronous programming - we'll take a look at them, and how they crop up in Django's request cycle. Some of them you can wander into via an easy mistake; some of them are caused by Django contributors getting things subtly wrong in the core code; and some of them are just plain fun to try.

We'll also talk about Django's culture of safety, how to protect against these issues both automatically and with manual review, and what asynchronous programming means for safety in programming at large.