Quando a Dataddo estava maximizando os recursos do RabbitMQ, descobriu que já tinha uma solução escondida à vista de todos: PostgreSQL.
Trabalhos de longa duração com RabbitMQ estavam levando a intervalos de pulsação e reconectações sem total observação do motivo dos problemas estarem acontecendo. Executá-lo na AWS hospedada significava que a empresa de integração de dados não poderia configurar o RabbitMQ da maneira que desejava, mas não tinha a capacidade de engenharia para gerenciar internamente o corretor de mensagens de código aberto.
Trabalhando com alguns colaboradores do Postgres em outros projetos, a empresa global de integração de dados descobriu que o Postgres, o banco de dados testado e comprovado, poderia lidar muito bem com esses trabalhos de longa duração e fornecer melhores insights sobre quaisquer problemas potenciais. Assim nasceu o mecanismo de enfileiramento PGQ, abreviação de fila Postgres, que se tornou open source.
Escrito em Go e construído sobre um banco de dados Postgres, significa que os desenvolvedores podem adicionar filas de mensagens simples, mas confiáveis, para seus serviços usando a infraestrutura com a qual provavelmente já estão familiarizados.
“Muita gente está interessada neste assunto. …(Eles) já usam Postgres em sua empresa ou no projeto, e estão enfrentando os mesmos problemas ou estão usando Postgres para tudo, e estão satisfeitos com isso”, disse Tomáš Sedláček, CTO da Dataddo, acrescentando que usar RabbitMQ, Kafka ou outra ferramenta simplesmente adiciona outra tecnologia que os desenvolvedores precisam aprender e manter. Do ponto de vista de contratação, é mais fácil encontrar engenheiros que apenas conheçam o Postgres, disse ele.
Uma tabela regular do Postgres
A fila no PGQ é apenas uma tabela normal do Postgres, então qualquer pessoa que tenha alguma experiência com SQL padrão pode usá-la para consultar uma tabela, inserir novas linhas ou qualquer outra coisa. O PGQ usa um modelo editor-consumidor no qual os editores adicionam eventos à fila e os consumidores os processam de forma assíncrona. Com um elevado volume de tarefas distribuídas por vários trabalhadores, isto também permite que os trabalhos sejam executados em paralelo. O PGQ foi projetado para ser resiliente mesmo em meio a falhas temporárias, com mecanismos para lidar com erros e novas tentativas.
A melhoria da visibilidade é uma grande vantagem, de acordo com Sedláček.
Dataddo descobriu que a observabilidade é limitada com RabbitMQ – capaz apenas de ver o que está esperando para ser processado, não o que está sendo ou o que já foi processado.
No Postgres, tudo é gravado no disco rígido e não no modo de memória para eliminar o risco de perda de dados, o que significa que há um registro de tudo o que acontece, independentemente de o processamento ter sido concluído ou não. Você pode rastrear facilmente métricas como profundidade da fila, processamento e taxas de erro e personalizá-las de acordo com suas necessidades.
“Ao usar o PGQ, você tem uma boa capacidade de observação sobre o que está acontecendo na fila; (erros) são atenuados por padrão… Como o que aconteceu ontem na fila? … Já está armazenado lá até você excluí-lo”, disse ele.
A empresa afirma que o PGQ funciona bem para empresas que já utilizam Postgres, não precisam otimizar para velocidade e não querem lidar com a curva de aprendizado e manutenção de mais uma tecnologia. Por estar gravando tudo no disco rígido, o PGQ será um pouco mais lento que o Kafka, de acordo com Sedláček, mas não tanto.
Mas não é adequado para empresas com requisitos altamente avançados de roteamento de mensagens ou para aquelas que lidam com volumes extremos e precisam otimizar o rendimento.
Embora no momento apenas para aplicativos Go, uma versão PHP está em desenvolvimento.
Como Dataddo usa PGQ internamente
Fundada em 2018, a Dataddo oferece uma plataforma de integração de dados totalmente gerenciada e sem código que fornece serviços ETL (extrair, transformar, carregar), ELT (extrair, carregar, transformar) e ETL reverso, juntamente com mais de 250 conectores para enviar dados com segurança entre aplicativos baseados em nuvem e ferramentas de business intelligence, data warehouses e data lakes.
Seus clientes incluem X (anteriormente Twitter), Ogilvy, Uber Eats, provedor internacional de serviços financeiros Allianz e Microsoft.
Dataddo usa PGQ internamente para mais de 200.000 trabalhos de longa duração diariamente, bem como trabalhos curtos, como envio de e-mails ou salvamento de logs, comunicação assíncrona de aplicativos entre Go, PHP e Node.js e monitoramento do desempenho de sua própria plataforma.
YOUTUBE.COM/THENEWSTACK
A tecnologia avança rápido, não perca um episódio. Inscreva-se em nosso canal no YouTube para transmitir todos os nossos podcasts, entrevistas, demonstrações e muito mais.
SE INSCREVER
Susan Hall é a editora patrocinadora do The New Stack. Seu trabalho é ajudar os patrocinadores a obter o maior número possível de leitores para o conteúdo que contribuem. Ela escreve para The New Stack desde seus primeiros dias, bem como para sites…
Este site utiliza cookies para melhorar sua experiência de navegação. Ao continuar, você concorda com o uso de cookies. Para mais informações, consulte nossa Política de Privacidade.
Funcional
Sempre ativo
O armazenamento ou acesso técnico é estritamente necessário para a finalidade legítima de permitir a utilização de um serviço específico explicitamente solicitado pelo assinante ou utilizador, ou com a finalidade exclusiva de efetuar a transmissão de uma comunicação através de uma rede de comunicações eletrónicas.
Preferências
O armazenamento ou acesso técnico é necessário para o propósito legítimo de armazenar preferências que não são solicitadas pelo assinante ou usuário.
Estatísticas
O armazenamento ou acesso técnico que é usado exclusivamente para fins estatísticos.O armazenamento técnico ou acesso que é usado exclusivamente para fins estatísticos anônimos. Sem uma intimação, conformidade voluntária por parte de seu provedor de serviços de Internet ou registros adicionais de terceiros, as informações armazenadas ou recuperadas apenas para esse fim geralmente não podem ser usadas para identificá-lo.
Marketing
O armazenamento ou acesso técnico é necessário para criar perfis de usuário para enviar publicidade ou para rastrear o usuário em um site ou em vários sites para fins de marketing semelhantes.