2017-03-05 37 views
3

让我们想象一下一个典型的应用阿卡与像演员的结构树,即小(2-3)的顶级演员这在层次结构的底部管理潜在的成千上万的小演员的数量。看起来有两种方法来持久化:应该制作哪些演员持久?

  1. 只让顶级行为者持久化。儿童演员靠父母的任何状态恢复等
  2. 使所有的儿童演员的执着。我们最终可能会有数千个持久性id,每个actor都可以恢复它自己的状态。这些方法之间进行选择时

考虑哪些因素有哪些?是否有典型的用例与一个适合,但不适用于另一个?

的问题应该是抽象的,但这里有一个例子。假设我们为应用程序的每个用户都有一个演员,并且这些演员共享相同的父演员。如果我们想要坚持每个用户的电子邮件地址及其更新,我们可以让每个用户的演员持久化,或者我们可以让顶级演员持久化。

回答

2

在这种情况下,我可能会用第二种方法去。只有在“选择”时才会为用户演员恢复事件。使这种方法更加方便的是,用户行为者的行为可以根据其状态而改变。例如。如果用户注册,那么您肯定不希望多次持续存在相同的“注册”事件。或者,如果用户停用其帐户,您当然不希望让他更新他的电子邮件等。另外,所有更改都将保存为一系列事件。所以没有数据丢失。

在另一方面,如果使用第一种方法,你就必须重新创建所有的小演员在父母的演员复苏以确定其状态,使用户能够避免前面提到的意想不到的结果。

相关问题