Apache Kafka

DevOps 🔴 Senior

Definition

Plateforme de streaming distribué à haute performance. Les messages sont persistés dans des topics partitionnés, consommés par des consumer groups.

Analogie

Un journal officiel : les articles (messages) sont publiés, archivés, et chaque lecteur (consumer) peut relire depuis n'importe quelle date.

Exemple de code

// Producer
await producer.send({
  topic: 'user-events',
  messages: [{ key: userId, value: JSON.stringify(event) }]
});
// Consumer
await consumer.subscribe({ topic: 'user-events' });
await consumer.run({ eachMessage: async ({ message }) => {
  processEvent(JSON.parse(message.value));
}});

Cas d'usage

Event sourcing, streaming de données temps réel, communication inter-services à grande échelle.

Anti-pattern

Utiliser Kafka pour des queues simples : surcharge opérationnelle pour un cas trivial.

Termes lies

#devops#messaging#interview