La gestion d’états d’un système où de multiples sous-routines s’entrechoquent est complexe et particulièrement critique pour tous types d’applications. Les données les plus sensibles sont bien souvent déplacées sur une base de données relationnelle pour les rendre persistantes, mais il est parfois nécessaire d’avoir besoin de plus de flexibilité. Que ce soit pour une problématique de volume, d’économie de ressources ou tout simplement pour gagner en performance, certains outils peuvent être plus adaptés. Redis ou Memcached, deux environnements largement utilisés et bien connus des développeurs, sont généralement sélectionnés pour effectuer ce genre de tâches. Il s’avère que ce modèle d’architecture est relativement rare au sein de l’écosystème Erlang/OTP. Une des raisons à cela est peut-être due à la présence de deux modules livrés nativement : ETS et DETS…
La très grande majorité des applications fonctionnant sur la BEAM, que ce soit Erlang, Elixir ou tous les autres langages compatibles avec cette machine virtuelle font un usage intensif d’ETS et de DETS. Pour preuve, si votre architecture utilise un serveur RabbitMQ, VerneMQ ou bien encore CouchDB, une partie de votre plateforme dépend alors de ces deux technologies. Après avoir découvert la cryptographie, la gestion des connexions réseau et quelques protocoles livrés avec chaque release d’Erlang/OTP, cet article a donc pour objectif d’introduire un sujet bien plus vaste et complexe : la gestion de données au sein d’un cluster. Cette partie n’est pas des plus simples pour plusieurs raisons. Tout d’abord, de nombreux concepts utilisés par Erlang ne sont pas couramment appliqués dans des projets dits « classiques ». De plus, la gestion d’états, et plus largement de base de données, est un domaine vaste s’appuyant sur un panel de théories, bien souvent...
- 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