Очередь на Redis с Lua: порядок в партициях, общий пул воркеров и отложенные сообщения

Перед командой встала типичная для высоконагруженных сервисов постановка по обработке сообщений:
1. Порядок обработки в рамках одной логической партиции
2. Очень много ключей партиций
3. Ограниченный пул воркеров, который шарится между партициями, при этом одна тяжёлая партиция не должна блокировать остальные
4. Ретраи и отложенные сообщения
Ни одна готовая «одна технология» не закрывает это из коробки без компромиссов. Ниже — как мы к этому пришли и что в итоге сделали в виде библиотеки smart-redis-queue (очередь на Redis, логика в Lua-скриптах).
















