Kafka est un service de streaming distribué développé à l’origine par LinkedIn.

C’est maintenant un projet opensource. Via un jeu d’API, il est possible de publier de l’information sur des “topics”. Un topic est un journal partitionné d’enregistrements dont chaque partition est ordonnée et immuable. Des consommateurs peuvent s’abonner à ces topics. Kafka peut fonctionner sur un cluster avec des partitions réparties sur les nœuds du cluster. En conséquence, Kafka se veut hautement évolutif.

Les différences entre Kafka et Cloud Pub/Sub

Pour le coeur de leurs fonctionnalités, Pub/Sub et Kafka sont très similaires. Alors quelles sont les différences ?

Google Pub/Sub est géré par Google et Kafka est un logiciel libre, l’autre différence est que Google Pub/Sub est une file d’attente de messages (p. ex. Rabbit MQ) alors que Kafka est plutôt un journal d’événements (log). Par défaut, il n’est pas possible de “relire” ou “rejouer” des messages avec Pub/Sub, alors que c’est possible avec Kafka.

Avec Google Pub/Sub, une fois qu’un message est lu , il est supprimé de la file. Pour pouvoir le lire plusieurs fois, il faut avoir plusieurs abonnements.. Mais cela augmente aussi les coûts car Google facture l’utilisation du Pub/Sub en fonction de la quantité de données lues à partir de celui-ci.

Avec Kafka, vous fixez une période de conservation et les messages restent dans Kafka quel que soit le nombre de consommateurs qui les lisent. Vous pouvez ajouter un nouveau consommateur (aussi appelé abonné), et le faire commencer à consommer à partir du début du sujet quand vous le voulez. Vous pouvez également régler la durée de conservation à l’infini.

Cloud Pub/Sub est une solution Serverless

Pub/Sub est un service cloud. Vous n’avez rien à faire sur le plan opérationnel, y compris la réplication. Les ingénieurs de Google s’occupe de tout. Du côté de la réplication, tous les messages sont automatiquement répliqués dans plusieurs régions et zones.

Toutes les parties opérationnelles de Kafka sont de votre ressort.