La programmation orientée flux ...
Publié le 08/25/2011… illustrée en commentaire dans son code source :D

Bon sinon pour expliquer un peu le concept, on voit chaque brique de base du programme interconnectées les unes avec les autres. Dans cette version là du moteur, qui n’inclut pas toutes les fonctionnalités, chaque noeud se comporte comme un thread* et effectue ses opérations tant qu’il a des données à traiter et les mets à disposition des noeuds consommateurs qui le suivent. Il se fiche de ce qu’il y a avant et ce qu’il y a après.
Chaque noeud dans un système doit être capable de prendre ses propres décisions seulement sur la base de son propre état.
C’est pas moi qui le dit, c’est le CTO d’Amazon, Werner Vogels, et en fait c’est un peu ce qui se passe ici.
Bon sauf que c’est un peu une POC que j’ai pas eu le temps de pousser au maximum mais comme ça avait des bons résultats, ça s’est retrouvé catapulté en prod tel quel :/ Il y aurait mille choses à redire là dessus. Par exemple, pour qui zoomera, avoir X noeuds qui font des accès à la base SQL, ça ne sert à rien …
Etc.
Mais bon, ça reste un des projets sympa que j’ai pu mené ces derniers temps et donc je continue un peu d’affiner ce concept à la maison. Un jour j’en reparlerai … un jour !
* : une des fonctionnalités manquantes, c’est justement de ne pas s’exécuter comme un thread quand ça n’en vaut pas le coût.