Ao conhecer ou saber da existência do Apache Kafka®, muitas perguntas surgem:
- “Onde usá-lo …”
- “Como usá-lo …”
- “Quais problemas ele resolve …”
- “Como ele funciona …”
- “Quando usá-lo …”
- “Ele é uma fila?”
Todas elas são rapidade respondidas, mas esta ai dá mais trabalho:
- “Por que utilizar o Apache Kafka®?”
Afinal, quais são o motivos que nos levam a usar o Kafka e não outra ferramenta?
Neste artigo existem elementos para ajudar na responder desta pergunta.
Código Fonte Aberto
- ativamente evoluído por diversas empresas e usuários
- suportado pela Confluent® (projetos open source apadrinhados por grandes empresas tem um grande alcance, como a Datastax® faz com o Cassandra ou a Cloudera® com o Hadoop)
- mantido pela fundação Apache®, a maior comunidade de código fonte aberto do mundo
Documentação
solução de problemas: pela idade do Apache Kafka® e também pela abrangência do seu uso, encontramos soluções para muitos problemas. Sejam problemas de instalação, operação ou desenvolvimento.
manuais de uso: documentação de altíssima qualidade que detalha cada aspecto do uso do ecossistema open source, incluindo: javadoc, documentação oficinal, documentação Confluent, artigos, exemplos de código e comunidades de usuários.
Integração
- várias linguagens com suporte as APIs Producer e Consumer
- Rest Proxy para as linguagens antigas ou sem suporte nativo
- Centenas de conectores para Kafka Connect
- Suporte avançado nos principais frameworks: Spring, Quarkus, Vertx, Micronaut, Akka
- Replicação multi-datacenter, multi-cloud ou multi-região com Mirror Maker
Ecossistema
- Producer e Consumer API: simples, idempotentes ou transacionais
- Streaming com Kafka Streams, escrito sobre a API Consumer e Producer
- Integração com origens ou destinos de dados com Kafka Connect
- Schema Registry
- ksqlDB
- milhares de exemplos sobre como utilizar cada parte do ecossistema
- muitas outras ferramentas e utilitários
Casos de Uso
- ideal para processamento de eventos
- arquitetura elaborada para alta performance e alta disponibilidade
- níveis ajustáveis para consistência e confiabilidade
- modelo de persistência durável, que pode ser ajustada em nível de tópico
- consumo concorrente out-of-the-box
- garantia de ordem em nível de partição
- consumo por poll, o que reduz as responsabilidades do broker e não satura o consumidores
- nativo para nuvem (cloud native)
Conclusão
Bem, é isso. Estes foram os elementos e eles ajudarão qualquer pessoa a responde Por que utilizar o Apache Kafka®?.
Até o próximo!
Photo by Emily Morter on Unsplash