53

私は、Rich Hickey が提唱し、 Datomicで実装されたデータ管理へのアプローチに非常に感銘を受けました。このアプローチでは、データはインプレースで変更されることはなく、すべてのバージョンが常に保持され、クエリ可能であり、時間が最初のものです。クラスのコンセプト。

もちろん、Git やその他のソース管理システムなど、その説明に一致する特殊なデータベースがあります。問題は、たとえば e コマース Web アプリケーションで効果的に使用できる、リレーショナル、グラフ、階層、ドキュメント、またはその他のフレーバーの (多かれ少なかれ) 汎用 DBMS があるかどうかです。それとも、Datomic が唯一の選択肢でしょうか?

4

2 に答える 2

34

イベント ソーシングと呼ばれる、データを削除したり変更したりしないという考えでシステムを設計するアプローチがあります。基本的には、状態のスナップショットではなく、システム状態を変更するイベント (または事実) を保存するという考え方です。イベントの履歴を後で再生して、任意の時点での状態がどのように見えるかについて、特定の目的に特化した予測を作成できます。異なる目的のために構築された複数のプロジェクションは、システム内で共存できます。詳細については、次の Web サイトを参照してください。

それはあなたが説明していることと一致していますが、単なるデータベース モデルではなく、イベント ソーシングとコマンド クエリ責任分離 (CQRS) は、データベースとビジネス ロジック レイヤーを含むシステム全体を設計する特別な方法を規定しています。

次のような、このアプローチに従うフレームワークがいくつかあります。

これはあなたの質問に直接答えるものではありませんが、問題について別の視点を提供する可能性があります。

于 2012-11-22T12:51:59.197 に答える