Apache Kafka é um sistema de mensageria altamente escalável, que usa tópicos e partições para enfileiramento de mensagens. Sobre os componentes arquitetônicos do Kafka, assinale a afirmativa correta.
- A)As partições são divididas em tópicos que os consumidores assinam para receber mensagens.
Errada, porque tópicos são formados por partições, e não o contrário.
- B)Um tópico pode ter apenas um produtor que escreve eventos nele, porém pode ter muitos consumidores que o assinam.
Errada, porque um tópico pode receber mensagens de vários produtores, não de apenas um.
- C)Os eventos no tópico são imutáveis, o que significa que não podem ser modificados depois de escritos.
Certa, porque os eventos gravados no Kafka seguem um modelo append-only e não são modificados depois de armazenados.
- D)Os produtores atribuem uma chave a cada mensagem e o Kafka a armazena no tópico principal da partição mais vazia.
Errada, porque a chave pode ser usada para particionamento, mas não existe a regra de gravar na “partição mais vazia” do tópico principal.
- E)Os consumidores sempre recebem as mensagens na ordem em que foram enviadas.
Errada, porque a ordem é garantida apenas dentro de cada partição, não necessariamente em todo o tópico.
Gabarito: C
O Apache Kafka organiza a comunicação em um modelo de publicação e assinatura, no qual produtores enviam eventos para tópicos e consumidores leem esses eventos a partir desses tópicos. Pense no tópico como uma “fila inteligente” dividida em partições, que ajudam o sistema a escalar e a distribuir a carga. Cada partição mantém a ordem dos eventos apenas dentro dela, e os dados, depois de gravados, não são alterados como se fossem um post já publicado: você até pode adicionar novos eventos, mas não reescreve o que já foi registrado facilmente. É justamente por isso que a alternativa C está correta: os eventos no tópico são imutáveis após serem escritos. No Kafka, a mensagem gravada fica armazenada no log da partição e recebe um offset, que funciona como seu endereço sequencial. Isso combina com a ideia de log append-only, muito cobrada em prova. As outras alternativas tentam inverter conceitos básicos. Tópicos não são divididos em partições; é o contrário: os tópicos são compostos por partições. Também não existe a regra de que um tópico tenha apenas um produtor. Vários produtores podem escrever no mesmo tópico, e vários consumidores podem ler dele, inclusive em grupos de consumo. Outro detalhe importante: a chave da mensagem pode influenciar a escolha da partição, mas não existe essa história de “partição mais vazia” como regra padrão. E a ordem das mensagens não é garantida em todo o tópico, apenas dentro de cada partição. Então, se a banca tenta empurrar uma ordem perfeita e universal, desconfie na hora.