阅读很多CQRS / DDD / ES博客文章,仍然不确定简单的博客引擎是否有效。
例如,在发布帖子的情况下...... 用户单击发布→添加到事件存储的PostPublished事件→触发聚合对象(例如,存档和FrontPage)以更新以反映最近的事件。
在用户方面,我点击发布按钮,然后重定向到我博客的首页,我希望在此页面上看到新帖子。但是,如果事件存储落后(例如1-2秒),我的新帖子将不会显示。
在将重定向返回给用户之前,是否有一个等待所有聚合更新的系统的答案?
答案 0 :(得分:0)
你的问题是如何处理最终的一致性,并且确实没有一个适合所有解决方案的傻瓜证明。
IMO的最佳解决方案就是简单地将“发布后发布,它会立即显示”通知。有些人也会一遍又一遍地进行查询,直到他们得到最近的更改,然后显示首页。如果ES落后,那么会将头版延迟一两秒。