Para publicar (gravar) e assinar (ler) streams de eventos, incluindo importação e exportação contínua de dados de outros sistemas;
O Kafka é construído em torno do conceito de log. Esse conceito simples, mas poderoso, é um log distribuído, imutável e append-only, onde podemos capturar e armazenar os eventos que ocorrem no negócio e nos sistemas de maneira escalável e eficiente. Esses eventos podem ser disponibilizados para vários usuários por assinatura, bem como processados ​​e agregados posteriormente, para uso direto ou para armazenamento em outros sistemas, como RDBMS, data lakes e NoSQL.
Neste artigo, serão exploradas as APIs disponíveis no Apache Kafka, com demonstrações de como podem ser usadas nos sistemas e nas aplicações.
A grande vantagem de um sistema como o Kafka é que os produtores e os consumidores estão separados, o que significa, entre outras coisas, que podemos produzir dados sem precisar que um consumidor exista, a priori. Por conta do desacoplamento, podemos escalar esses processos. Assim que um evento acontece, enviamos para Kafka. Tudo o que precisamos saber são os detalhes do cluster do Kafka e o tópico, uma forma de organizar dados no Kafka, uma espécie de tabela em um RDBMS, para o qual queremos enviar o evento.
Existem clientes disponíveis para o Kafka em muitas linguagens de programação diferentes. A seguir um exemplo de produção de um evento para o Kafka usando a linguagem Go: