"Lorsque vous combinez deux éléments de données, vous obtenez des données. Lorsque vous combinez deux machines, vous rencontrez des problèmes." - Rich Hickey présentant la base de données fonctionnelle.
Les concepts axés sur la programmation fonctionnelle, principalement sur l'immuabilité, sont de plus en plus présents dans notre vie quotidienne. Il n'y a donc rien de plus juste que de connaître une base de données dont la philosophie est l'immuabilité des données, apportant le contrôle des faits dans un format complètement différent de celui que nous avons. être habitué.
Dans cet article, nous ferons connaissance avec Datomic, qui porte ce nom précisément parce qu'il apporte les données dans un format légèrement différent du format conventionnel, cherchant à rapprocher l'immuabilité des données du niveau de la base de données, avec une approche fonctionnelle axée sur le bon fonctionnement avec systèmes distribués.
Début 2012, l'équipe Relevance (rejoignant plus tard Metadata pour former Cognitec) et Rich Hickey ont lancé Datomic, sur lequel ils ont commencé à travailler en 2010, avec la principale motivation étant de transférer une partie substantielle de la puissance assignée aux bases de données. serveurs pour serveurs d'applications, afin que le programmeur dispose de plus de puissance de programmation avec les données dans la logique de l'application.
Datomic Cloud a été lancé début 2018 en utilisant les composants d'Amazon :
Cognitect (la société auparavant responsable du développement de Datomic) a été acquise par Nubank en 2020, et Nubank a annoncé en avril 2023 que les binaires Datomic sont accessibles au public et gratuits (cela signifie que sa version Pro est désormais gratuite).
Écrit en Clojure, Datomic fonctionne un peu différemment des bases de données que nous avons l'habitude d'utiliser, étant utilisé pour gérer les données, mais pas pour les stocker. Nous reviendrons plus en détail sur son architecture, mais en bref, cela signifie que Datomic peut utiliser plusieurs autres services de stockage de données pour stocker des transactions, voire d'autres bases de données, ce qui peut donner lieu à une belle combinaison.
Le principal concept de fonctionnement de Datomic est que les données sont immuables dans leur ensemble. Une analogie intéressante pour que vous puissiez imaginer et comprendre un peu mieux comment cela fonctionne est :