我了解事件溯源中的事件绝不应该被允许改变。但是内存状态呢?如果域模型需要以某种方式更新,旧事件不应该仍然重播到旧模型吗?我的意思是不应该总是重播事件并获得与以前完全相同的状态,或者只要存储的事件保持不变,如果这种状态演变得太快,是否可以接受?理想情况下,我想我希望能够像旧模型、规则一样获得状态。但除此之外,我当然也想将旧事件重播到新模型中。理论对此有何看法?
最佳答案
预测事件结构变化
您应该始终尝试反射(reflect)这样一个事实,即事件在您的事件应用程序机制中具有不同的结构(即您在哪里读取事件并将它们应用于模型)。 毕竟,事件的早期结构在当时是有效的结构。
这意味着您需要为这种情况做好准备。设计足够灵活的事件应用机制,以便您可以支持这种情况。
迁移存储的事件
只有 作为最后的手段如果您迁移存储的事件。如果您这样做,请确保您了解后果:
关于domain-driven-design - 如何处理域模型更新和存储事件的不变性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202925/