问题描述
我想在真实项目中使用事件源。
我发现以下结构:
Table Events:
Id [uniqueidentifier] NOT NULL,TimeStamp [datetime] NOT NULL,Name [varchar](max) NOT NULL,Version [varchar](max) NOT NULL,EventSourceId [uniqueidentifier] NOT NULL,Sequence [bigint],Data [nvarchar](max) NOT NULL
但是我的问题是我不知道此表是否适用于我的整个项目,还是我必须为每个域聚合创建一个事件表?
解决方法
但是我的问题是我不知道此表是否适用于我的整个项目,还是我必须为每个域聚合创建一个事件表?
Message DB的同事建议对所有邮件使用一个表格。
请注意,这在Postgres中;他们并未就如何在其他关系数据模型中实现事件存储提出任何主张。消息数据库设计利用了Postgres中可能不通用的锁定功能的优势。
我鼓励您找到像message-db这样的“开箱即用”的存储,而不要自己动手。但是,如果找不到合适的东西,那么看看消息数据库的设计以及乔恩·奥利弗(Jon Oliver)的CQRS event store注释,可以帮助您避免一些更常见的错误。