Tuesday 2:20 p.m.–2:50 p.m.

Connecting Patients to Doctors in Real-Time Using Django, Celery, Redis and Websockets

Jacinda Shelly

Audience level:



Your challenge, should you choose to accept it, is to create a system that allows patients to connect to doctors licensed in their state efficiently. How I used Django, Celery, Redis and Websockets to create a real-time matching system for Doctor On Demand.


Doctor on Demand is a start-up that allows you to talk to a licensed US Physician from the comfort of your home - no appointment required. One of the core components of our business is ensuring that we have a stable and efficient way to match patients with a doctor licensed in their state. Keeping this system as efficient as possible helps decrease the number of patients who might otherwise use Urgent Care or an Emergency Room, which saves patients money and decreases the overall cost of patient care.

This talk covers the various options that could be used for implementing different components of this system, why I eventually settled on the current architecture and ways I plan to improve it in the future.

Topics covered include:

  • Long-running HTTP requests, AJAX, Websockets
  • Celery, RabbitMQ and other options for asynchronous tasks
  • Using Redis for frequently accessed / update data and for simple locks