16 pontos por xguru 2023-11-29 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Recomenda usar o mesmo banco de dados (Postgres) para os dados da aplicação e para a fila de jobs. Dependências mínimas
  • É possível evitar toda uma classe de problemas em sistemas distribuídos ao colocar jobs na fila de forma transacional junto com outras alterações no banco de dados
  • Enfileiramento transacional: os jobs entram na fila quando a transação é confirmada, são removidos quando a transação sofre rollback e é garantido que não fiquem visíveis até o commit
  • Aproveitando o recurso NOTIFY do Postgres, a fila pode acordar os workers assim que um job estiver pronto para começar, reduzindo a latência média antes do início do processamento para a casa dos milissegundos
  • Usa o protocolo binário do Postgres e minimiza os round trips com o banco de dados para aumentar a eficiência
    • A inserção em massa de jobs é feita de forma eficiente com COPY FROM

Ainda não há comentários.

Ainda não há comentários.