Beaucoup de projets web utilisent des frameworks qui font grand usage de Redis pour gérer les tâches de fond. Pourtant RabbitMQ ou Kafka sont des options qui peuvent donner un regard tout à fait différent sur l’application en elle-même. Tour d’horizon des trois approches.
Lorsque Ruby on Rails a commencé à être utilisé, il a vite fallu avoir des moyens de traiter des choses en dehors du serveur HTTP, de façon asynchrone. La plupart des sites internet applicatifs ou des backends qui servent des applications mobiles ont ce genre de besoins : envoi de courriels, génération de fichiers d'archives ou PDF, etc.
Plusieurs librairies et projets ont vu le jour à ce moment et sont devenus populaires (Delayed::Job, Resque, Sidekiq pour en nommer quelques-uns). Ces projets sont souvent issus de besoins rencontrés par les startups de cette époque (Delayed::Job est issu de Shopify). Ils ont quasiment tous en commun d'utiliser Redis (le cheval de trait de cette génération d'applications Ruby on Rails) pour stocker les listes des tâches à traiter.
Mais est-ce là la seule façon de faire ? Point du tout. Quelques années auparavant, la plupart des projets utilisaient RabbitMQ (un agent de messages, implémentant le protocole AMQP), et c'est...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première