This document discusses how to scale Django applications. It covers concurrency models like multi-process, threads, and event-driven approaches. It then focuses on using gevent, an asynchronous networking library, to add concurrency to Django. Gevent uses greenlets (lightweight coroutines) and event loops and allows blocking code to run concurrently. It also discusses deploying Django applications with Gunicorn and gevent to improve scalability over alternatives like Twisted.