Sobes.tech
Senior

Comment faire en sorte que tous les événements d'une même commande soient dirigés vers une seule partition Kafka?

sobes.tech IA

Réponse de l'IA

Pour que tous les événements d'une même commande soient dans une seule partition Kafka, il faut utiliser une clé (key) lors de l'envoi des messages, qui identifie de manière unique la commande.

Kafka utilise la clé pour calculer la partition via une fonction de hachage. Si la même clé (par exemple, order_id) est utilisée pour tous les événements d'une commande, ils seront dans la même partition.

Exemple en Go avec sarama (client Kafka populaire) :

producer.Input() <- &sarama.ProducerMessage{
    Topic: "orders",
    Key:   sarama.StringEncoder(orderID), // orderID — identifiant de la commande
    Value: sarama.StringEncoder(eventData),
}

Ainsi, il est garanti que tous les événements avec la même clé seront dans une même partition, ce qui est important pour le traitement ordonné et la cohérence.