I'm working on a Django Channels project and was wondering if there was (or
was a roadmap for) features that could help us control load issues at the
application level. I asked on StackOverflow
made the mistake of including the term "DDoS" and so I received a bunch of
generic DDoS explanations. I know that DDoS is in some cases a different
beast entirely, but I also think that smaller attacks or load issues
related to any traffic increase could be handled at the application level.
For example, Django Rest Framework's Throttling support provides a great
way to do things like prioritize or not throttle authenticated users, but
throttle anonymous users. I'm wondering if Channels or Daphne has support
for something like:
- Throttling (per channel, ideally)
- Dynamic worker assignment based on queue size, response time, etc.
- Middleware to provide priority to requests based on some metric
(authenticated, for example)
- Priority decorators for consumers that could tell workers not to run
certain consumers if the queue is large
Right now I have a design that could cause the socket channel to experience
high latency or a full queue in certain situations. This is fine as there
is very little that it does that is critical, but I've had to move a
specific feature to the HTTP layer to make sure it doesn't get mixed up in
the websocket traffic.
Again, I'm not specifically looking at protecting the site against a
malicious attack - accidental load spikes are probably more common and can
happen for lots of reasons like slashdotting
I'm happy to discuss this in more detail, but am just working on first
finding a community of people that can provide some educated insight.
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
To post to this group, send email to email@example.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
For more options, visit https://groups.google.com/d/optout.