The gevent project has allowed us to transparently bolt on asynchronous functionality to otherwise synchronous python WSGI based web frameworks and servers. However, piecing together this puzzle for yourself may prove less than convenient as libraries and tutorials remain incomplete, skipping over many pertinent details. To remedy this confusion we'll put together a starter project combining gevent, django and socket.io to build a simple asynchronous application, pausing along the journey to discuss the relevant details. But first we'll detour to discuss event loops, in particular how gevent's implementation runs.

There was a time when Python's various virtualization tools were enough to fit my needs. However, as I continued to build increasingly complex applications which relied on a variety of other system services, I started to notice moving from project to project was difficult. Each project required unique service configurations, and moving between them was a headache. What I needed was a way to virtualize the entire system, which is when I turned to Vagrant. After using Vagrant for the past few years, I've developed a simple template that helps me spin up new Django environments quickly.