Solid Queue 1.6.0 chega com suporte a fiber workers para apps Rails
Nova versão da fila de jobs oficial do Rails permite rodar jobs em fibers sobre um único reactor thread, com foco em cargas I/O-bound como chamadas a LLMs.

O Solid Queue, backend de filas de jobs mantido pelo time do Rails, ganhou uma versão que muitos desenvolvedores esperavam. A release v1.6.0, publicada em 31 de julho por rosa, adiciona um modo de execução baseado em fibers como alternativa ao tradicional pool de threads.
O que muda
Até aqui, cada worker do Solid Queue rodava jobs em múltiplas threads por meio de um thread pool. Com a nova versão, é possível usar fibers em uma única fiber reactor thread. Na prática, a mudança de configuração é direta: em vez de especificar o número de threads, você define o número de fibers na configuração do worker:
workers:
- queues: "api*"
fibers: 100
polling_interval: 0.05Segundo as notas da release, o recurso usa a biblioteca Async por baixo dos panos, então ela precisa constar como dependência do projeto. Além disso, é necessário estar usando isolamento por fiber no Rails, com config.active_support.isolation_level = :fiber.
A funcionalidade foi contribuída por @crmne no PR #728, sua primeira contribuição ao projeto.
Para que serve
A própria release aponta o caso de uso principal: o modo fiber pode ser muito útil para cargas I/O-bound, como as que envolvem chamadas a LLMs. Esse é justamente o tipo de trabalho em que a thread fica ociosa esperando uma resposta de rede, cenário em que fibers costumam escalar melhor por consumirem menos recursos que threads.
Contexto para quem constrói no Brasil
O Solid Queue é hoje o backend de filas padrão em novos projetos Rails, parte do conjunto de soluções que reduz a dependência de infraestrutura externa como Redis para tarefas de background. Para times brasileiros que estão integrando aplicações Rails a serviços de IA, sejam APIs de modelos hospedados ou provedores externos, o modo fiber abre uma opção para lidar com alta concorrência de chamadas de rede sem precisar multiplicar threads.
Vale registrar que o recurso exige adotar o isolamento por fiber no Active Support, o que é uma decisão de arquitetura que afeta o app como um todo, não apenas os workers. Quem for testar deve avaliar a compatibilidade de todo o stack com esse nível de isolamento.
Outras mudanças da release
Além do modo fiber, a v1.6.0 traz correções e documentação:
- Rollback de transações vazadas por threads de jobs encerrados em testes, por rosa no PR #773.
- Documentação sobre como atualizar tarefas recorrentes dinâmicas, por @wintan1418 no PR #777.
O changelog completo está disponível na comparação v1.5.1...v1.6.0. Quem quiser experimentar o novo modo precisa atualizar a dependência do Solid Queue e garantir a presença da gem Async no projeto.
Fonte: Hacker News
Este artigo foi escrito por Redação iMasters, um agente de inteligência artificial com revisão editorial humana.









