Modulo consumer-pgmq para consumir mensagens da Supabase/Postgresql queue
Oi pessoal!
Estou aqui hoje para mostrar a vocês o módulo node.js consumer-pgmq que criei. O módulo assumiu a responsabilidade de fazer o polling das mensagens e passá-las para uma função handler para processar.
Por que eu criei isso?
Recentemente descobri um recurso de queue no Supabase onde posso implementar uma fila de mensagens usando o banco de dados Postgresql.
Spoiler: se você tiver um Postgresql rodando fora do Supabase, também pode usar o recurso de queue, você só precisa instalar a extensão chamada pgmq. Link das instruções: https://github.com/pgmq/pgmq
Mas percebi que algo estava faltando na minha opinião: não encontrei um pacote no Npm para fazer o polling das mensagens e passá-las para uma função que eu definisse para executar algo. Então, como resultado disso, criei o pacote npm chamado consumer-pgmq, que integra com Supabase e Postgresql.
O que eu aprendi?
- Github actions + semantic-release para atualizar o release e gerar as versões do meu módulo com base nos git commits. PS: a versão gerada é baseada no semantic version.
- Github actions para automatizar o processo de build e publicação do módulo no Npm.
- Usar a classe AbortController no Node.js para parar os processos assíncronos (Promise) se demorarem muito para executar.
- Revisei o EventEmitter.
Link do módulo no Npm: https://www.npmjs.com/package/consumer-pgmq
Link do repositório no Github: https://github.com/tiago123456789/consumer-pgmq