我读过Jonathan Oliver的.NET EventStore库,我必须说这个概念对我很有吸引力:只有一个简单的无依赖关系库,它是非侵入性的,只专注于事件源,在选择数据库、消息等技术时留有很大的自由度。
我的问题是:类似的东西在Java世界中也可用吗?我知道有各种与CQRS相关的框架,比如Axon和Jdon,但它们不仅仅是事件源。。。也许有人在一个简单的端口上工作吗?
我不知道有任何存在。同时,写一个也不会太难。对我来说,写EventStore最困难的部分是找到正确的模型。我在公司内部发布了两次私人/内部版本,然后又发布了两个公开版本,我才真正对结果感到满意。还有一些Ruby端口和其他语言,通常需要几个小时才能编写,因为作者复制了模型。如果你采取同样的方法,我不明白你为什么不能在几个小时内写出自己的作品。
我意识到这个问题已经过时了,但对于现在处境相似的人来说:你可以试试Greg Young的EventStore(http://geteventstore.com)
它需要.NET或mono来运行,但有一个基于JVM的客户端库:https://github.com/EventStore/eventstorejvmclient
您可以看看Occurrent,它被设计成一个库。这意味着您可以只使用事件存储,而不使用其他内容,并在合适时添加更多组件。
如果你想在顶部使用框架(而不必在域模型中使用特定于框架的代码),它还可以很好地与流行的框架(如Spring Boot)集成。
理论上,它可以支持消息传递,但目前似乎只支持数据库。
使用JDBC并不是一种强加,而且可以很容易地满足您的需求。如果你想要简单,我会使用JDBC。
如果你想支持JMS(消息传递),我只会使用它(带有一个适用于你想使用的任何数据库的适配服务)。这为你提供了一个简单的标准事件驱动接口,用于所有类型的消息传递(以及你连接的任何数据库)