Pular para o conteúdo principal

Conceitos Iniciais

O que é streaming de eventos?

Imagine que o streaming de eventos é como o sistema nervoso do seu corpo digital. Assim como seus nervos captam sinais de todo o corpo e os enviam ao cérebro para processamento, o streaming de eventos captura informações de várias fontes em tempo real.

O que é na prática?

É uma forma de coletar, mover e analisar dados enquanto eles acontecem:

  • Coleta: Captura informações em tempo real de:
    • Bancos de dados
    • Sensores e dispositivos
    • Aplicativos e sites
    • Serviços na nuvem
    • etc
  • Transporte: Move esses dados imediatamente (como uma esteira transportadora digital)
  • Processamento: Analisa ou reage a esses dados instantaneamente ou mais tarde.

Por que é importante?

  • Negócios "always-on": Permite que empresas funcionem e respondam 24/7
  • Automação: Softwares podem reagir a outros softwares automaticamente
  • Decisões rápidas: Fornece informações no momento certo para ação imediata

Exemplo prático:

Quando você usa um app de transporte por aplicativo:

  • O app do motorista envia continuamente sua localização (eventos)
  • O sistema de streaming processa esses eventos
  • Seu app recebe atualizações em tempo real sobre a localização do motorista
  • sistema pode reagir automaticamente (roteamento, preços, etc.)

O streaming de eventos garante que todas essas peças de informação fluam constantemente, permitindo que tudo funcione de forma suave e conectada.

O Kafka combina três recursos principais para implementar casos de uso para streaming de eventos de ponta a ponta com uma única solução testada em batalha:

  • Publicação (producer) e consumo (consumer) de fluxos de eventos, incluindo importação/exportação contínua de dados de outros sistemas.
  • Armazenamento durável e confiável de fluxos de eventos pelo tempo desejado.
  • Processamento de fluxos de eventos à medida que ocorrem ou retrospectivamente.

Toda essa funcionalidade é fornecida de maneira distribuída, altamente escalável, elástica, tolerante à falhas e segura.

Vantagens no uso do kafka

  • Os dados são publicados apenas uma vez.
  • Os consumidores interessados nos dados podem assinar e consumir o que lhes interessa.
  • Produtores e consumidores são desacoplados, podendo trabalhar em ritmos diferentes.
  • Os consumidores podem ler dados mais de uma vez.
  • A indisponibilidade do produtor não afeta o processo.
  • Alta disponibilidade e capacidade com recursos de cluster e particionamento.

Se o kafka fosse escalado verticalmente, surgiriam problemas como:

  • Necessidade de interrupção para upgrade.
  • Limite pequeno de escala.
  • Requer configurações complexas.
  • Problemas de incompatibilidade.

O que abordar nesse estudo?

Desenvolvimento

O Kafka oferece bibliotecas para a utilização de funções em praticamente todas as linguagens.

Um dos principais players que desenvolvem e até oferecem o Kafka como serviço é a Confluent.

Veja aqui uma lista de bibliotecas e encontre a linguagem desejada, inclusive com exemplos de código para uso.

Devops

Aqui é o foco principal do nosso estudo:

  • Compreender a arquitetura do Kafka e provisioná-lo da melhor maneira possível.
  • Entender os limites e qual configuração seria ideal para cada cenário.
  • Gerenciar tópicos e permissões de acesso através de RBAC.
  • Disponibilizar as ferramentas necessárias para que os desenvolvedores consigam fazer seu trabalho de forma fácil e objetiva, podendo debugar seus payloads de produção e consumo.