2026-04-17 –, AMPHITHEATRE
We're all familiar with Django's atomic context for managing database transactions, but Django existed for several versions before it existed. How were transactions managed before 2013? How are transactions managed now? And how might they be managed in the future?
Until 2013, Django's atomic context manager didn't exist. This talk will explore how we had to manage database transactions -- as well as save-points, rollbacks, and commits -- before the ergonomics of atomic and what changed when it was introduced. By understanding what tools Django users had in Django 1.5 to make their code atomic, durable, or both, we can understand what problems atomic solved and how it made writing Django applications better.
Fast-forward to 2026 and we all take atomic for granted. But what problems might it have for modern development? We take a look at where atomic can cause confusion and suggest some ways to handle that in the future using django-subatomic.
Django Internals, DB
Audience Level:Intermediate
Sam (he/him) is a staff software engineer at Kraken Tech. He used to work on billing and payments systems, but now spends most of his time working on project architecture, tooling, and developer enablement.
Creator of https://ccbv.co.uk/, django-subatomic, django-schema-graph, django-sansdb, django-integrity. See https://meshy.co.uk/