Domain driven design 保持数据模型同步(MySQL和Neo4j)

Domain driven design 保持数据模型同步(MySQL和Neo4j),domain-driven-design,event-sourcing,Domain Driven Design,Event Sourcing,昨天我看了Greg Young的一场精彩的多语言数据演讲 虽然我完全同意关键点,但并不是每件事都明确执行。 他在视频的给定部分提出的想法是,客户端必须保持自己的状态,这是合理的,但这是否意味着MySQL中应该有一个“主”记录,然后以事件的形式传播到Neo4j 这意味着我们必须在SQL中维护一个图形结构,不是吗?>。 他在视频的给定部分提出的想法是,客户端必须保持自己的状态,这是合理的,但这是否意味着MySQL中应该有一个“主”记录,然后以事件的形式传播到Neo4j 简短回答:是的——客户端处理器

昨天我看了Greg Young的一场精彩的多语言数据演讲

虽然我完全同意关键点,但并不是每件事都明确执行。 他在视频的给定部分提出的想法是,客户端必须保持自己的状态,这是合理的,但这是否意味着MySQL中应该有一个“主”记录,然后以事件的形式传播到Neo4j

这意味着我们必须在SQL中维护一个图形结构,不是吗?>。 他在视频的给定部分提出的想法是,客户端必须保持自己的状态,这是合理的,但这是否意味着MySQL中应该有一个“主”记录,然后以事件的形式传播到Neo4j

简短回答:是的——客户端处理器跟踪自己的读取位置,并要求记录簿进行更新。它接受这些更新,将它们转换为Neo4j实例的更改,并应用这些更改

从理论上讲,你并不需要以事件的形式获取更新——整个记录簿的快照就可以了;但是,通过处理变化流,您可以处理较小的信息块,而不用担心您尚未阅读的内容会改变您迄今为止所看到的内容的含义

这意味着我们必须在SQL中维护一个图形结构,不是吗

不是图形结构,不是——只是用于生成结构的所有状态。读取模型是一个视图——它可以忽略不相关的状态,它可以将相关状态转换为更合适的数据结构,但它不应该包括任何尚未在记录簿中表示的状态