I have a bot in Telegram that have around mil users and it uses this queue to handle events in parallel:
Asynchronous Queue with fine-grained control over concurrency.
Useful for cases when you need to combine asynchronous and synchronous behaviour in your services.
A good example of such behaviour is processing messages in telegram bot. Messages in such case should be processed in parallel. However, if there are multiple messages received from the same user, they must be processed consequently.
https://github.com/y9san9/aqueue