Tecnologias/03 - Filas/01 - Kafka1 minmoc
MOC Kafka
01 - Kafka
Kafka não é uma fila. É um log append-only, particionado e replicado, cuja retenção é independente do consumo — e cada palavra dessa frase produz uma consequência prática.
Definições e explicações
- 1. Mensageria e Desacoplamento — por que existe broker, e os três usos que são confundidos
- 2. Kafka — a arquitetura, KRaft, retenção, compactação, o ecossistema
- 3. Partições, Offsets e Consumer Groups — onde vive o paralelismo e a ordem
- 4. Garantias de Entrega e Idempotência — at-least-once, EOS e o limite dele
- 5. Armazenamento, ISR e KRaft — segmentos, page cache,
sendfile, High Watermark - 6. Kafka Streams e Connect — CDC com Debezium, dualidade stream/table, state stores
A comparação com RabbitMQ, SQS e Kinesis está em 5. Kafka vs Fila Tradicional, na seção de Comparações.
Conceitos relacionados
Os padrões conceituais já estão no vault: Asynchronism, Message Queues, Publisher-Subscriber, Competing Consumers, Queue-Based Load Leveling, Back Pressure e Idempotent Operations. Aqui você vê como o Kafka implementa (e não implementa) cada um deles.
A ideia que atravessa a seção
Kafka não entrega mensagens. Ele guarda um log e diz onde cada leitor parou.
Daí saem, em cascata:
- Consumir não destrói → cinco sistemas leem o mesmo dado, em ritmos diferentes.
- Reprocessar é mover um ponteiro → corrigir um bug de consumidor é resetar offset, não reenviar dado.
- Ordem só existe dentro da partição → ordenar globalmente significa uma partição, ou seja, um consumidor.
- Retenção é custo de disco → o histórico que você quer guardar tem preço mensurável.
E o corolário operacional, que vale para qualquer broker:
Assíncrono não elimina a falha — ele a transforma em
lag. Por isso a métrica número um de todo sistema com Kafka é o consumer lag, e o alerta é na derivada dele.
Parte de Filas · kafka.apache.org