首页 > 解决方案 > 是否可以对事件进行建模以封装在不同时间发生的多个事情

问题描述

我正在开发一个需要在多个设备之间同步的遗留移动应用程序。它使用事件源来执行同步。它是一个离线应用程序,业务逻辑在应用程序内而不是在中心位置执行。这似乎很好,因为需要执行业务逻辑的域被隔离到一个组中,并且同步只发生在同一组中的不同设备之间。由于系统的分布式特性,属于一个组(组流)的事件按时间排序。虽然,现有事件非常大并且具有以下格式。

SomethingHappened 
{
    prop1: {
        ...props,
        created_date,
        updated_date, 
    },
    prop2: {
        ...props,
        created_date,
        updated_date,
    }
    created_date // timestamp of the event
}

我是事件溯源的新手,上述格式让我感到困惑。如果某个事件发生在某个时间,我们不应该在当时和那里记录它吗?可以对事件进行建模以封装在不同时间发生的多件事情吗?如果不是,这会导致将来出现问题吗?

标签: distributedevent-sourcingevent-driven

解决方案


将多个事件组合成一个事件本质上没有错。它通常出现在您希望以原子方式持久保存多个事件的情况下(即所有事件都被持久化或没有一个事件被持久化)。只要您可以确定正在维护排序不变量,就可以了。


推荐阅读