简单 Web 应用程序的事件源数据流

Event sourcing data flows for a simple web application

通读了很多 CQRS/DDD/ES 博客 post,仍然不确定一个简单的博客引擎是否可行。

在发布 post 的情况下,例如... 用户点击发布 → PostPublished 事件添加到 Event Store → 触发聚合对象(例如,Archive 和 FrontPage)更新以反映最近的事件。

在用户端,我单击发布按钮并被重定向到我博客的首页,我希望在顶部看到新的 post。但是,如果事件商店落后(比如 1-2 秒),我的新 post 将不会出现。

答案是让系统等待所有聚合更新后再将重定向返回给用户吗?

您的问题是如何处理最终一致性,确实没有万无一失的解决方案。

IMO 的最佳解决方案是简单地在上面放置一个 'Post published, it will show up in a moment' 通知。有些人还会一遍又一遍地查询,直到他们得到最近的更改,然后显示首页。如果 ES 落后,这会使首页延迟一两秒。