A v1.3 abre o módulo de replicação no Kafka Simulator — a maquinaria por trás de cada garantia de durabilidade que o Kafka oferece. É o maior pacote até agora, com 12 novos cenários, levando o programa a 45 de 125.

O que há na v1.3

A replicação é onde as garantias do Kafka se tornam concretas — e onde podem ser perdidas:

  • Mecânica do ISR — como o conjunto de réplicas em sincronia encolhe quando um follower fica para trás e se expande quando ele alcança, e por que pertencer a esse conjunto é o que realmente importa.
  • A high watermark — por que um consumidor só pode ler até a HW, e por que a HW às vezes para de avançar mesmo com o líder continuando a aceitar escritas.
  • acks=all e min.insync.replicas — a relação exata entre os dois: por que um produtor ainda escreve depois de um broker cair, mas começa a receber NotEnoughReplicas depois do segundo.
  • Eleição de líder — qual réplica assume após uma falha, e por que ela precisa vir do ISR.
  • Eleição unclean — o que de fato se perde ao permitir que uma réplica fora de sincronia se torne líder, observado offset a offset.

Este é o módulo para tornar visível o qual todo o simulador foi construído. O comportamento interessante vive inteiramente nas transições — antes e depois de um broker morrer, antes e depois de o ISR mudar — e são exatamente essas transições que um quadro branco não consegue mostrar.

Novidade no modo livre: a topologia ativo/passivo

A v1.3 também abre a primeira forma multi-datacenter no sandbox do modo livre: ativo/passivo — duas regiões, um mirror unidirecional e um failover que você dispara sob demanda. É a maneira mais simples de ver a replicação deixar de ser um assunto interno a um cluster.

O programa de DR — MirrorMaker 2, tradução de offsets, failback — vem depois, na v1.8. Isto é o sandbox, liberado cedo de propósito: vale a pena brincar com a forma muito antes de chegarem os cenários que a explicam. Cada um dos três pacotes seguintes acrescenta mais uma topologia.

Por que a replicação é a âncora

Produtores e consumidores se apoiam nessas garantias; armazenamento, transações e multi-DC as estendem. Depois que você vê o ISR se mover e a high watermark se manter, o resto do programa vira uma série de variações sobre um sistema que você já entende.

Abra o simulador, configure RF=3 e min.insync.replicas=2 e comece a matar brokers.