L'histoire de l'adoption de Kafka chez Cloudflare en tant que message bus inter-services.
Ils l'ont déployé pour optimiser le développement de leur architecture micro-service (découplage) mais aussi:
- réduire les silos de données
- rendre les communications inter-services plus claires
- avoir un format de communication auto-documenté
Pour cela, ils ont notamment développé un client Kafka interne qui abstrait la plupart de la configuration et de la logique compliqué.
Le schéma de communication n'est pas JSON ou Avro (ouf!) mais l'excellent Protobuf qui en plus d'avoir une taille réduite, assure le typage fort de chaque champ afin d'identifier les breakings changes.
Niveau observabilité, le plus important pour eux est le "lag", qui est le temps entre le dernier message produit et le dernier message lu.
Cette seule métrique permet d'identifier de nombreux problèmes:
- le consumer est down
- le consumer n'arrive pas à ingérer tous les messages
- un nombre inhabituel de messages est produit
- le consumer n'acquitte plus les messages
Bref, un super retour d'expérience et pleins de bons conseils pour construire son infrastructure applicative avec Kafka.