Yahoo! a mis à disposition Pulsar, leur plate-forme de messages publication-souscription utilisée en interne dans la production de plusieurs services.
Selon Yahoo!, Pulsar est un système de messages pub/sub à faible latence qui peut être mis à l'échelle horizontalement sur plusieurs hôtes et centres de données. Yahoo! a utilisé Pulsar en production pour les Courriels, les Finances, les annonces Gemini, Sherpa et les sports depuis le deuxième trimestre de 2015. En le rendant open source, ils espèrent qu'il sera largement utilisé en étant intégré à d'autres produits open source. Yahoo! a déployé Pulsar dans plus de dix centres de données, atteignant plus de 100B messages/jour répartis sur 1,4 million de sujets avec une moyenne de latence de publication de moins de 5ms. Pulsar assure la garantie de livraison des messages et de deux copies persistantes, la gestion automatique du curseur pour les lecteurs de message et la réplication inter-centre de données.
On peut mettre en place Pulsar pour fournir le messaging-as-a-service exécuté sur une ou plusieurs grappes et on peut le gérer - ajouter/supprimer des utilisateurs, ajouter de la capacité de calcul et de stockage, la comptabilité, les traces, etc. - par le biais d'une API. Les clients, les producteurs et les consommateurs sont mis en place en tant qu'entités et peuvent accéder aux fonctionnalités grâce à une bibliothèque Java. Cette bibliothèque prend en charge le service de découverte, la livraison de message et d'autres tâches connexes.
Pulsar utilise le concept de sujet comme intermédiaire entre les producteurs de message et les consommateurs. Les producteurs publient des messages dans les sujets de manière synchrone ou asynchrone. Les messages peuvent être regroupés en lots et compressés (LZ4, ZLIB). Les clients consomment ces messages par le biais d'abonnements, qui peuvent être exclusifs, partagés (à tour de rôle) ou à basculement.
Pour assurer la garantie de la livraison, Pulsar persiste les messages dans un stockage durable via des registres Apache Bookkeeper. Lectures et écritures sont dirigées vers des disques physiques séparés pour obtenir une latence de publication aussi faible que possible. Yahoo! a affirmé qu'en utilisant un SSD pour le périphérique de journal, Pulsar peut atteindre "une latence de 99 centiles à 5ms avec deux exemplaires garantis et un ordonnancement total".
Dans l'avenir, Yahoo! prévoit le support des messages non-persistants, la réduction du temps de migration de sujets entre des courtiers de messages de 10 secondes à l'heure actuelle à une valeur inférieure à 1 seconde, le passage de la latence de 99,9 centiles des messages publiés à 5ms (depuis 99 centiles) et le support d'autres langages client en dehors de Java.