Kafka is easier to understand when you can break it
Kafka легко объяснить как набор понятий: топики, партиции, брокеры, реплики, лидеры, оффсеты.
В начале это работает, но потом падает первый брокер, ISR сжимается, продюсер с acks=all перестаёт получать подтверждения — и статичная схема превращается в последовательность решений во времени.
Самое важное в Kafka скрыто именно в этих переходах: до и после сбоя, до и после выборов лидера.
Monedula сделали Kafka Simulator — браузерную детерминированную модель, которую можно безопасно сломать и разобрать по шагам.
Ставишь replication factor=3, min.insync.replicas=2, acks=all, убираешь один брокер — кластер деградировал, но пишет.
Убираешь второй — лидер жив, данные на месте, а запись уже отклоняется с NotEnoughReplicas.
Гарантию надёжности больше не выполнить.
Очень круто что команда сделала большой туториал по работе с Kafka.
@tldr_data
Post #122
152