Where do you think Django's real limits are?

I’ve been building increasingly ambitious applications with Django, and it has made me wonder:

What are Django’s real limitations not the theoretical ones, but the ones you’ve actually encountered in production?

I’m not looking for generic answers like “it’s monolithic” or “it’s slower than Go.”

I’m interested in real-world experience:

  • At what scale did Django become a bottleneck?
  • Which architectural decisions did you regret?
  • What pushed you toward microservices, FastAPI, or another framework?
  • Which workloads do you think Django is simply not the right tool for?
  • If you had to build a product with 100M+ requests/day, would you still choose Django? Why or why not?

I’d love to hear stories from people who’ve run Django under heavy traffic, managed large engineering teams, or maintained large code bases over several years.

Looking forward to learning from your experiences.

To answer your questions:

I have never encountered any.

It hasn’t for me.

None. I believe that migrating a flagship product from Java / Spring to Django at my last job is near the top of what I’m most proud of across my career.

  • Anything requiring a “hard realtime” response. If you’ve got a system that has a defined response requirement of less than .5 seconds per request, Django isn’t the right tool for this. (I don’t think any Python-based solution would be, either.)

    If per-request response times are critical, Python / Django are only going to get you so far. There is a lower limit as to how quickly a response can be generated.

  • Any site that can more easily be serviced by a different tool. There are still use-cases where WordPress, Drupal, Joomla, LifeRay, etc are better choices. Django is not the be-all, end-all solution for everything Web-related.

  • Any use-case for which an existing solution is the right “fit” for the required task. (I have no desire to reinvent the wheel.)

It depends.

There’s not enough context here to give a valid answer. The nature of the site being built and the types of requests being made would make a huge difference in my answer.

Keep in mind that at that level of activity, you’re going to have multiple areas of stress in your deployment - and Django limitations are probably going to be the easiest ones to address.

One of the strengths of Django’s architecture is that it’s designed to be horizontally scalable. Should you put too much load on a Django instance, you start up another instance.

You’re going to encounter more serious issues with your database and network infrastructure that aren’t going to be as easy to resolve.