50k seems like a low bar to start losing messages at. If this was done with Celery and a decently sized RabbitMQ box, I would expect it to get into the millions before problems started happening.
We currently have 3 machines doing this for millions of concurrent users. At the writing of this article it was 2 machines.
These are getting easily over 30,000 requests a second each about updating queues for new messages. And also are subscribed to presence events from our presence system to millions of people. It is a very busy service ensuring we only deliver messages to people not at their computer.
Edit: Also worth mentioning, the 50k buffer is for a single server, we run multiple push servers in the cluster.