Taking Channels Async
summary
Channels 2.0 is a ~75% rewrite that makes Channels fully async using Python asyncio, replacing worker processes with a single-process server (Daphne) plus a Redis channel layer and letting sync code run in threads so the ORM stays unchanged. Two tricky compatibility helpers (async_to_sync and sync_to_async) took months to get right and let synchronous views call async channel APIs and vice versa. The result: mixed sync/async apps deploy simpler, ASGI becomes the new external interface, and real-time features work without separate worker processes.
AI-written summary · about
chapters (26)
- 0:00Intro
- 0:56Who am I
- 1:12History of Channels
- 1:54Design Issues
- 2:28Channels 1 Architecture
- 4:00Channels 2 Code Base
- 4:45Rewrite Results
- 5:04Python Async Support
- 7:53Why Async
- 8:36Python Async
- 9:12Template Async
- 9:43Async to Sync
- 10:44Future Async
- 11:34Sync Native APIs
- 12:13Cross Compatibility
- 13:03Python Design for Async
- 14:04Blog Post
- 14:21WSGI
- 15:12Synchronous
- 15:45WSGI Async
- 19:59External Channels
- 20:20Making Django Async
- 22:41Replacing WSGI with SGI
- 24:41Multiple servers and frameworks
- 25:52Asynchronous code
- 27:23What is Channels
related talks
40mTaking Django Async
27mTaking Django Async
22mDjango Channels Teaching a mature framework new tricks
12mHacking Django Channels for Fun (and Profit)
45mWebSockets: Intro to Messaging
22mAsync API Specification 2.0
45mKeynote: Architecting with Channels
29mLet's make a working implementation of async functions in Python 2.1, also, why you might want to us
