Bases de données à usage général qui ne suppriment ni ne mettent à jour les données en place

Je suis très inspiré par l’approche de la gestion des données préconisée par Rich Hickey et implémentée dans Datomic , où les données ne sont jamais mutées sur place, toutes les versions sont toujours conservées et interrogeables, et le temps est un premier concept de classe.

Bien sûr, il existe des bases de données spécialisées correspondant à cette description, comme Git, ou tout autre système de contrôle de source. La question est de savoir s’il existe des SGBD (relationnels, graphiques, hiérarchiques, documentaires ou autres) plus ou moins polyvalents pouvant être utilisés efficacement, par exemple, dans une application Web de commerce électronique. Ou alors Datomic est-il le seul choix?

Il existe une approche pour concevoir des systèmes avec l’idée de ne jamais supprimer ou modifier des données appelées Event Sourcing. Fondamentalement, l’idée est de stocker des événements (ou des faits) qui modifient l’état du système, au lieu des instantanés de l’état. L’histoire des événements peut être rejouée plus tard pour produire une projection spécifique de ce à quoi l’État, à tout moment, ressemblait. Des projections multiples construites à des fins différentes peuvent coexister dans le système. Plus d’informations peuvent être trouvées sur les sites Web suivants:

C’est conforme à ce que vous décrivez, mais plutôt que d’être un modèle de firebase database, le sourçage d’événement et la séparation des responsabilités de requête (CQRS) imposent une manière particulière de concevoir le système complet, y compris la couche firebase database et les couches logiques.

Il existe quelques frameworks qui suivent cette approche, tels que:

Bien que cela ne réponde pas directement à votre question, cela peut donner une perspective différente sur le problème.

Irmin est une firebase database dissortingbuée qui suit les mêmes principes de conception que Git.