Flux d'événements : Kafka, Lambda et Kappa

Informatique de gestion · Master 1

Traiter des événements en continu : journal Kafka, architectures Lambda et Kappa.

Introduction

Beaucoup de décisions de gestion perdent leur valeur si elles arrivent trop tard : détection de fraude carte, alerte de stock, tarification dynamique. Le traitement de flux analyse les événements au fil de l'eau plutôt qu'en lots nocturnes.

Un journal d'événements distribué, dont Kafka est l'exemple le plus connu, joue le rôle de colonne vertébrale : les producteurs y écrivent, plusieurs consommateurs lisent à leur rythme.

Ce deck présente topics, partitions et groupes de consommateurs, les fenêtres temporelles, les garanties de livraison, et les architectures Lambda et Kappa.

Objectifs d'apprentissage

  • Décrire topics, partitions et groupes de consommateurs
  • Expliquer les fenêtres temporelles et le temps d'événement
  • Comparer livraison au moins une fois et exactement une fois
  • Distinguer architectures Lambda et Kappa

Concepts clés

Journal d'événements
Suite ordonnée, durable et rejouable d'événements ; les consommateurs conservent leur position de lecture (offset).
Partitions
Un topic est divisé en partitions pour le parallélisme ; l'ordre n'est garanti qu'au sein d'une partition.
Fenêtres
Agrégations sur des fenêtres de temps (fixes, glissantes, par session), idéalement selon le temps d'événement et non celui d'arrivée.
Sémantique de livraison
Au plus une fois (pertes possibles), au moins une fois (doublons possibles), exactement une fois (effet unique, plus coûteux).
Lambda et Kappa
Lambda combine un traitement par lots et un traitement temps réel ; Kappa n'utilise qu'un traitement de flux, en rejouant le journal au besoin.

Conclusion

Le traitement de flux répond aux cas où la fraîcheur de la donnée fait la valeur. Un journal d'événements partitionné, des consommateurs idempotents et des fenêtres bien définies permettent des décisions quasi immédiates.

Retenez les garanties de livraison, la différence entre temps d'événement et d'arrivée, et le choix Lambda ou Kappa.

Cartes

Qu'est-ce qu'un topic ?
Un canal nommé d'événements auquel les producteurs écrivent et que lisent les consommateurs.
À quoi servent les partitions ?
À paralléliser l'écriture et la lecture ; l'ordre n'est garanti qu'au sein d'une partition.
Qu'est-ce qu'un offset ?
La position de lecture d'un consommateur dans une partition.
Qu'est-ce qu'un groupe de consommateurs ?
Un ensemble de consommateurs qui se partagent les partitions d'un topic.
Quelle différence entre temps d'événement et temps d'arrivée ?
Le premier est le moment où l'événement s'est produit, le second celui où il est reçu ; ils divergent en cas de retard.
Que signifie livraison au moins une fois ?
Aucun message perdu, mais des doublons possibles, d'où l'idempotence.
Qu'est-ce qu'une opération idempotente ?
Une opération dont la répétition produit le même résultat qu'une exécution unique.
Qu'est-ce que l'architecture Lambda ?
Une voie par lots pour l'exactitude et une voie temps réel pour la rapidité, fusionnées en lecture.
Quel avantage de Kappa ?
Une seule logique de traitement, avec rejeu du journal pour corriger ou recalculer.

Glossaire

Topic
Canal nommé d'événements dans un journal.
Partition
Tranche ordonnée d'un topic pour le parallélisme.
Offset
Position d'un consommateur dans une partition.
Idempotence
Propriété d'une opération répétable sans effet supplémentaire.
Fenêtre glissante
Agrégation sur un intervalle de temps qui avance régulièrement.
Architecture Kappa
Architecture n'utilisant qu'un traitement de flux avec rejeu.