La v1.3 apre il modulo di replicazione nel Kafka Simulator — il meccanismo dietro ogni garanzia di durabilità che Kafka offre. È il pacchetto più grande finora, con 12 nuovi scenari, e porta il programma a 45 su 125.

Cosa c’è nella v1.3

La replicazione è il punto in cui le garanzie di Kafka diventano concrete — e in cui si possono perdere:

  • Meccanica dell’ISR — come l’insieme delle repliche sincronizzate si restringe quando un follower resta indietro e si allarga quando recupera, e perché l’appartenenza a quell’insieme è tutto.
  • La high watermark — perché un consumer può leggere solo fino alla HW, e perché a volte la HW smette di avanzare anche se il leader continua ad accettare scritture.
  • acks=all e min.insync.replicas — la relazione esatta tra i due: perché un producer scrive ancora dopo la caduta di un broker ma inizia a ricevere NotEnoughReplicas dopo il secondo.
  • Elezione del leader — quale replica subentra dopo un guasto, e perché deve provenire dall’ISR.
  • Elezione unclean — cosa si perde davvero lasciando che una replica non sincronizzata diventi leader, osservato offset per offset.

Questo è il modulo per rendere visibile il quale è stato costruito l’intero simulatore. Il comportamento interessante vive interamente nelle transizioni — prima e dopo la morte di un broker, prima e dopo un cambio di ISR — ed è esattamente ciò che una lavagna non può mostrare.

Novità nel gioco libero: la topologia active/passive

La v1.3 apre anche la prima forma multi-datacenter nella sandbox del gioco libero: active/passive — due regioni, un mirror unidirezionale e un failover che attivi quando vuoi. È il modo più semplice per vedere la replicazione smettere di essere una faccenda interna a un singolo cluster.

Il programma DR — MirrorMaker 2, traduzione degli offset, failback — arriverà più avanti, nella v1.8. Questa è la sandbox, sbloccata presto di proposito: vale la pena giocare con la forma molto prima che arrivino gli scenari che la spiegano. Ciascuno dei tre pacchetti successivi aggiunge un’altra topologia.

Perché la replicazione è l’ancora

Producer e consumer poggiano su queste garanzie; storage, transazioni e multi-DC le estendono. Una volta che vedi l’ISR muoversi e la high watermark tenere, il resto del programma è una serie di variazioni su un sistema che già capisci.

Apri il simulatore, imposta RF=3 e min.insync.replicas=2, e comincia a uccidere broker.