Semantiques exactement une fois dans Kafka : promesses vs réalité

Qu’est-ce que Kafka’s Exactly-Once garantit réellement ?

Kafka introduit l’assurance exactement une fois (EOS) dans sa version 0.11.0, qui fonctionne à deux niveaux :

  • Produit idempotent : chaque message est attribué un numéro de séquence par le producteur. Le serveur Kafka supprime les messages avec le même ID de producteur et numéro de séquence.

Cela évite les doublons causés par les tentatives de redémarrage du producteur — chaque message se trouve dans la partition exactement une fois, peu importe le nombre d’essais.

Qu’est-ce que l’assurance exactement une fois ne couvre pas ?

Lorsque vous utilisez Kafka avec cette garantie, il est important de comprendre les limites. L’assurance exactement une fois est limitée au cluster Kafka.

  • Les consommateurs doivent agir uniquement dans le contexte du cluster Kafka pour bénéficier pleinement de cette garantie.

Cela signifie que si vous écrivez à un autre système (base de données, API REST) en utilisant des mécanismes externes au cluster Kafka, vous pouvez rencontrer des problèmes.

Laisser un commentaire