Updates on Django's Async Story - Talk Python to Me Ep. 556
For years, "Django and async" came with an asterisk. The docs themselves warned you off it. Scary performance notes, a story that felt half-finished. Well, that story just got rewritten, literally, and the person who rewrote it is here to tell you why the old framing was wrong. Carlton Gibson is a former Django Fellow, sat on the security team for eight years, and he's on the steering council. On this episode we get into the async topic doc rewrite, what actually remains versus what was just fear, the new Tasks framework in 6.0, DB-level cascades and fetch modes landing in 6.1, and why free-threading is the bet that's about to pay off big for Django. If you've been told Django's async story isn't ready, this is the episode that puts that myth to bed. ▬▬▬▬ About the podcast ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ This video is the uncut, live recording of the Talk Python To Me podcast ( https://talkpython.fm ). We cover Python-focused topics every week and publish the edited and polished version in audio form. Subscribe in your podcast player of choice (100% free) at https://talkpython.fm/subscribe. ▬▬▬▬ Guests ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Carlton Gibson ▬▬▬▬ Links and resources from the show ▬▬▬▬▬▬▬▬▬▬▬▬ DjangoCon Europe: https://djangocon.eu/ PyCon Italia: https://pycon.it/ Django on the Med: https://djangomed.eu/ Django Mantle: https://noumenal.es/mantle/ PyPI: https://pypi.org/project/django-mantle/ release notes: https://docs.djangoproject.com/en/6.1/releases/6.1/ on_delete: https://docs.djangoproject.com/en/6.1/ref/models/fields/#django.db.models.ForeignKey.on_delete Fetch modes: https://docs.djangoproject.com/en/6.1/topics/db/fetch-modes/ HttpRequest.multipart_parser_class: https://docs.djangoproject.com/en/6.1/ref/request-response/ async topic doc: https://docs.djangoproject.com/en/dev/topics/async/ docs: https://docs.djangoproject.com/en/6.0/topics/tasks/ DEP 14: https://github.com/django/deps/blob/main/final/0014-background-workers.rst django-tasks: https://github.com/RealOrangeOne/django-tasks django-tasks-local: https://github.com/lincolnloop/django-tasks-local Celery: https://docs.celeryq.dev/ PEP 703: https://peps.python.org/pep-0703/ free-threading HOWTO: https://docs.python.org/3/howto/free-threading-python.html PEP 779: https://peps.python.org/pep-0779/ ASGI: https://docs.djangoproject.com/en/6.1/howto/deployment/asgi/ PGBouncer: https://www.pgbouncer.org/ Channels: https://channels.readthedocs.io/ sync_to_async / async_to_sync: https://docs.djangoproject.com/en/6.1/topics/async/#async-adapter-functions noumenal.es: https://noumenal.es/ Django Chat: https://djangochat.com/ @[email protected]: https://fosstodon.org/@carlton Article: Cutting Python Web App Memory Over 31%: https://mkennedy.codes/posts/cutting-python-web-app-memory-over-31-percent/ ▬▬▬▬ Dive deeper ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Listen to the Talk Python To Me podcast at https://talkpython.fm and explore over 275 hours of Python courses at https://training.talkpython.fm/courses. ▬▬▬▬ Follow us on Social ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Mastodon: Michael - https://fosstodon.org/@mkennedy & Talk Python - https://fosstodon.org/@talkpython Bluesky: Michael - https://bsky.app/profile/mkennedy.codes & Talk Python - https://bsky.app/profile/talkpython.fm X: Michael - https://x.com/mkennedy & Talk Python - https://x.com/talkpython