Sortie de Apache Storm 2.0, réécrit en Java pour de meilleures performances et mieux attirer les contributeurs

Par:
fredericmazue

lun, 03/06/2019 - 17:44

Apache Storm est un framework de calcul de traitement de flux distribué. Créé à l'origine par Nathan Marz et l'équipe de BackType. Le projet a été rendu open source après avoir été acquis par Twitter.  Apache Storm utilise des "spouts" (becs) et des "bolts" (boulons) créés sur mesure pour définir les sources d'informations et les manipulations permettant un traitement par lots et distribué des données en continu. Une application Storm est conçue comme une "topologie" sous la forme d'un graphe acyclique dirigé (DAG) avec des spouts et des bolts faisant office de sommets du graphe. (Wikipedia)

Apache Strom 2.0 est bien entendu une version majeure, avec notamment une nouvelle API Streams.

Mais Apache Storm 2.0 se fait avant tout remarquer par une réécriture complète. En effet, à l'origine, Apache Storm était écrit en langage Clojure. Pour mémoire, Clojure est un dialecte de LISP conçu pour la JVM. Le compilateur Clojure est avant tout un transpileur, qui transpile le code Clojure en bytecode Java. (Il est aussi possible de transpiler du code Clojure sur vers .NET et JavaScript)

Les responsables du projet expliquent ce qui les a motivés à réécrire Apache Storm en Java pur : Dans les versions précédentes, une grande partie de la fonctionnalité principale de Storm était implémentée dans Clojure. Storm 2.0.0 a été revérifié avec ses fonctionnalités principales implémentées en Java pur. La nouvelle implémentation basée sur Java a considérablement amélioré les performances et rendu les API internes de Storm plus faciles à gérer et à développer. La mise en œuvre de Storm par Clojure a bien fonctionné pendant de nombreuses années, mais cela a souvent été cité comme un obstacle à l'entrée de nouveaux contributeurs. La base de code de Storm est maintenant plus accessible aux développeurs qui ne veulent pas apprendre Clojure pour pouvoir contribuer.

Apache Storm est un logiciel libre sous licence Apache 2.0, et peut être téléchargé ici.