Sobes.tech
Senior

Hoe zorg je ervoor dat alle gebeurtenissen van een bestelling in één Kafka-partitie terechtkomen?

sobes.tech AI

Antwoord van AI

Om ervoor te zorgen dat alle gebeurtenissen van één bestelling in één Kafka-partitie terechtkomen, moet je een sleutel (key) gebruiken bij het verzenden van berichten, die de bestelling eenduidig identificeert.

Kafka gebruikt de sleutel om de partitie te berekenen via een hashfunctie. Als voor alle gebeurtenissen van één bestelling dezelfde sleutel (bijvoorbeeld order_id) wordt gebruikt, komen ze in dezelfde partitie terecht.

Voorbeeld in Go met sarama (populaire Kafka-client):

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

Op deze manier wordt gegarandeerd dat alle gebeurtenissen met dezelfde sleutel in één partitie zitten, wat belangrijk is voor geordende verwerking en consistentie.