构建事件存储库时,典型的方法是序列化事件,然后保留事件的类型,事件的主体(序列化的事件本身),标识符以及事件发生的时间。
对于事件类型,是否有关于如何存储和引用这些事件的最佳实践?我看到的示例存储类的完全限定路径,即。
com.company.project.package.XXXXEvent
但是,如果您决定重构项目结构,那又需要做些什么呢?
在生产中运行基于事件的应用程序数年后,我们避免为事件类型使用完全限定的类名或任何其他平台特定的标识符。
事件类型只是一个字符串,应允许任何类型的读者理解该事件应如何反序列化。对于重构可能导致类名更改的应用程序结构,您也绝对正确。
因此,我们使用预先配置的映射,该映射允许将对象类型解析为字符串并将字符串反转为事件类型。这样,我们就可以将事件类型的元数据与实际的类分离,并获得使用不同语言和堆栈来读取和写入事件的自由,并且还能够根据需要自由移动类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句