Django и распределение запросов
Есть сервис на django, который принимает сообщения из разных источников (чаты) и отправляет их в другой сервис (тоже с чатами) с использованием requests. В пределах одного чата нужно обеспечить порядок отправки сообщений. При использовании gunicorn wsgi с одним инстансом такой порядок обеспечивается, но производительность оставляет желать лучшего. На uvicorn запросы обрабатываются очень быстро, но в итоге порядок не обеспечивается. Некоторые сообщения обрабатываются быстрее других. Пробовал использовать celery с sqs fifo очередями, но с ним та же ситуация, в саму очередь таски нужно загружать так же последовательно, для обеспечения порядка. Порядок соблюдается в пределах одного чата, поскольку я загружаю их в очередь с указанием id, после чего работники последовательно выполняют таски только с одинаковыми id. С самим celery worker тоже есть проблемы. Prefork почему-то разбирает таски быстрее чем gevent, хотя последний обладает большей производительностью в параллелизме, нежели prefork (по личным наблюдениям)
Я в вебе всего полгода, многих технологий могу не знать. Как решаются подобные задачи? Как обеспечить высокую производительность сервера и в то же время гарантировать последовательную обработку запросов по определённому идентификатору?