.NET的EventStore事件存储数据库
EventStore/EventStore · GitHub是一款面向.NET的Event Store数据库,这是面向CQRS + Event Sourcing架构下用来记录Domain Events的数据库,相关概念见:https://github.com/eventstore/eventstore/wiki/Event-Sourcing-Basics
Event Store 作为一个 functional database,可以进行事件的回放重播,当我们“重播”一个事件流,我们返回的是一系列的事件。一个事件本质上是一个序列化方法调用,通过重新调用这些方法返回当前状态,可以使用如下代码表达:
when([SomePatternMatch], function(state, event) { return new state; });
事件流导致这些函数调用被串联成链,每个函数有一个状态结果,上一个函数处理的状态传导到下一个函数. 换句话说,当前状态是一个先前事实的left fold. 我们可以更远地说这是一个snapshot,快照其实就是left fold备份记忆. 当从这个角度看,Event Store 其实是 functional database.函数数据库。
[该贴被admin于2013-10-11 16:47修改过]