Artisanal Async Adventures
If you want to write an efficient server, asynchronous networking is an excellent strategy to do so. To build a production ready system, you would use asyncio, tornado, twisted, trio or another popular implementation. However, to fully understand how and why it works, I will ignore these solutions and instead craft an artisanal asynchronous implementation in front of your very eyes. Step by step we will turn a blocking socket server, only capable of handling a single connection at a time, into a beautiful non blocking server that has no trouble dealing with many connections at once. By the end, you should see that asynchronous code is not magical at all, but nevertheless incredibly useful.
Jonas is a software engineer at HDE Inc in Japan, using Tornado and asyncio to develop cloud based security services. He got started in his Python career with Django, helping to develop and maintain the popular open source django CMS project for several years. He has spoken at various conferences around the world, co-organized DjangoCon Europe in 2012 and volunteers at PyCon Japan.