Обычные очереди с хранением данных в redis, всё в документации.
То чего нет в документации, с 0.9 версии появился TTL, надо его ставить. Если пропустите done();, а я вам гарантирую, что вы их будете месяцами втыкать во все места сложных задач, то задача отвалится по таймауту. Ловить ошибки надо везде, когда у вас процессится задание. Пропустите, timeout не стоит, задача встала. Даже если стоит, задача не выполнится. И если вы уж используете очереди, то это будет не одна задача, а сотни тысяч или миллионы.
Ещё надо чистить базу от job failed. Удаляются только job success, если стоит removeOnComplete(true). А вот failed надо чистить руками, в документации описано как это делать. Не будете чистить, может что-то пойти не так и редис сожрёт всю память.
Надо обязательно настраивать graceful shutdown.
В последних версиях выключен поиск по задачам, если он вам не нужен, не включайте.
Если вам не нужны job events, выключите. Редис заметно похудеет.
Если у вас будет расти память у редиса, останавливаться задачи и куча других ошибок около kue. То 99.9%, что проблема в ваших руках, а не в kue. В issues каждые пару недель появляется человек с "jobs stuck" и это как раз 99.9%