Kafka é rápido — mas eu vou usar Postgres
(topicpartition.io)Argumento central
O setor de tecnologia está se dividindo em dois grupos:
- Grupo 1: adota indiscriminadamente stacks modernas e complexas em busca das palavras da moda
- Grupo 2: usa apenas o necessário com uma abordagem sensata e prática
O autor defende que, na maioria dos casos, é possível usar Postgres no lugar do Kafka como sistema de pub/sub e filas.
Resultados dos benchmarks
Desempenho de pub/sub
- Nó único com 4 vCPU: 5.036 mensagens gravadas por segundo, 25.183 lidas por segundo (fan-out de 5x)
- Replicação em 3 nós com 4 vCPU: throughput semelhante, com leve aumento de latência
- Nó único com 96 vCPU: 243.000 mensagens por segundo, velocidade de leitura de 1.16 GiB/s
Desempenho de fila (Queue)
- Nó único com 4 vCPU: 2.885 mensagens por segundo
- Nó único com 96 vCPU: 20.144 mensagens por segundo
Pontos principais
- Avanço do hardware: hardwares modernos (CPU de 192 núcleos, 4 TB de RAM) tornaram um único nó extremamente poderoso
- Renascimento do Postgres: o movimento “vamos usar Postgres para tudo” está crescendo
- Praticidade: até grandes startups como a OpenAI ainda usam uma única instância de Postgres
- Sobrecarga organizacional: adotar uma nova tecnologia gera custos de aprendizado, operação, monitoramento etc.
Conclusão
"Vamos simplesmente usar Postgres até ele quebrar"
A maioria das empresas precisa de apenas alguns MB por segundo de throughput, algo que o Postgres consegue suportar com folga. A mensagem é que sistemas distribuídos complexos só devem ser adotados quando realmente forem necessários.
8 comentários
O Kafka é lento...
Não sei se o "Brilhante" é bom para todas as situações, mas acho que já vi muitos casos em que usaram Kafka mesmo sem precisar, o que acabou gerando trabalho extra.
Outro texto exaltando o PostgreSQL...
O importante é usar só o quanto for necessário
e ter uma arquitetura que permita mudar com flexibilidade
Isso me faz lembrar do post mais extremo recomendando PostgreSQL.
Oh, como você mudou o título do jeito que queria?
O título?
Não é como se eu tivesse usado algum grande truque.
https://news.hada.io/guidelines
> Suporte a Markdown
> É suportado tanto no texto principal quanto nos comentários.
> Segue o padrão CommonMark por padrão.
> Imagens não são suportadas.
Além disso, parece que, no caso de URLs do GeekNews, um ícone é exibido antes do título do link.
Vou continuar usando SQLite até o SQLite quebrar, só isso.