Executando verificação de segurança...
9

Foi lançado hoje a Defer: processamento de filas (background jobs) para Node.js

Turma, foi lançado hoje a Defer, uma nova startup que está sendo financiada pela Y Combinator e que serve para rodar background jobs (processamento de filas) em aplicações Node.js.

Home da Defer

Pelo que entendi, a preocupação máxima da Defer foi atingir o estágio de "Zero infrastructure", assim como quando você usa a combinação de Next.js + Vercel e com isso você não precisa se preocupar com nada da infraestrutura para ter um servidor web rodando.

No caso de usar a Defer, pelo que entendi, basta escrever numa pasta defer/ do seu projeto as funções que vão fazer o processamento que você deseja, e depois fazer uma chamada no código para enfileirar os dados a serem processados, por exemplo:

Escrevendo as funções

Enfileirando

Custo

Eles fornecem um plano gratuito, onde passando o mouse em cima da linha com o 5 GB-hours aparece ~1,8K exec. of 10 sec / month. Se eu entendi corretamente, neste plano você pode realizar por mês 1,8 mil execuções que duram 10 segundos no máximo cada.

Página de custo

1

Gostei muito da solução! Veio na hora certa aqui...

Eu já estava procurando alguma boa solução para Background Jobs que funcionasse legal no Next.js, tentei diversas soluções: QStash, BullMQ, e etc. Mas nenhuma funcionava da forma que eu queria.

Acabei encontrando uma ótima solução que tem uma adaptação bacana para Next.js; chama-se Quirrel e é focado em Serverless. Caiu como uma luva aqui, e funciona MUITO bem.

1

Filipe, desculpa ser chato kkkkkk, mas eu não trabalho na área, e acredito que ferramentas como essa provavelmente são utilizadas em aplicações robustas. Eu assisti um video do Fabio Akita, onde ele fala sobre processamento assíncrono, como no exemplo de um e-commerce, recebendo e processando pagamentos em uma black-friday por exemplo. Ao invés de deixar o usuário esperando a confirmação, e correndo o risco de dar time-out nele, eu pego essas requisições, e coloco em uma fila, que vai processando, e a medida que vai terminando, envia e-mails para os clientes, por exemplo.

Eu nunca utilizei, mas para Node eu já ouvi falar de uma lib chamada Bull, que faria esse papel de criar e gerenciar as filas, porém você teria que configurar algumas coisas como Banco de dados NoSql como um Redis, para registrar logs, e depois persistir estes dados no BD Relacional, sem confrontar com as conexões dos clientes.

O Defer seria mais ou menos isso, só que com muita coisa pronta e configurada, ou estou viajando ?

4

Não, você não está viajando. O Defer, pelo que entendi rapidamente, é uma startup que fornece uma solução de processamento de filas pronta para uso em aplicações Node.js.

Isso significa que não precisa configurar e gerenciar, ao contrário da lib que você citou.
Tem uma sessão no site que diz "Focus on your code, not on DevOps".

Acredito que com essa frase fica claro que você não precisar configurar as filas manualmente e nem se preocupar com a infra necessária. O Defer resolve.

1

Muito obrigado, de verdade Fabricio. Eu imaginei que fosse isso mesmo, mas como sou iniciante, sempre fico com um pé atrás. Que bom que existem pessoas que dão esse feedback. Valeu.

2
1

Exatamente o que eu precisava, um implementação de filas em banco relacional que não dependa dessas configurações devops de Redis e afins.
Obrigado!

1