Documentation / Kafka Streams

06

Kafka Streams

A base observável para processamento stateful, event-time, joins e garantias de entrega.

LAB-VERIFIEDLABKAFKA 4.3.1

Kafka Streams

Kafka Streams é a camada de processamento do KafkaPay. A aplicação lê tópicos, executa uma topologia DSL e escreve resultados de volta no Kafka. O laboratório usa Kafka Streams 4.3.1, Java 21, Avro e Schema Registry em http://localhost:8082.

Topology

Uma topologia é um grafo de sources, processors, state stores e sinks. O Topology#describe() foi impresso no startup para que os nomes e tópicos internos fossem verificáveis. Os nomes explícitos reduzem ambiguidade durante incidentes.

payment.created
      |
      v
Deserialize Avro → validate → normalize
      |                    |
      v                    v
payment.validated    payment.rejected

Application ID, tasks e group

application.id é simultaneamente a identidade lógica da aplicação, o consumer group e o prefixo dos recursos internos. Tasks são atribuídas por partition. Duas instâncias com o mesmo ID partilham as tasks; IDs diferentes criariam aplicações independentes e consumiriam o mesmo input separadamente.

Escala e failover

Com seis partitions, duas instâncias receberam assignments distintos. Quando uma JVM foi terminada abruptamente, o group fez rebalance e a instância sobrevivente assumiu as partitions. O backlog publicado sem membros foi consumido após o restart a partir dos offsets confirmados.

Limites

Streams coordena processamento, offsets e estado Kafka. Não torna side effects externos idempotentes por si só. ALO pode reaplicar processamento; EOS V2 controla a visibilidade de transações Kafka, mas não substitui deduplicação de domínio.