在假期中,我阅读了 Pat Helland 的“超越交易的生活”(是的,假期真是太好了 :)。简而言之,它主张将事务的范围限制在单个实体中,然后使用能够更新实体或取消任务的“活动”组,只要发生会使该任务无效的更改。
(例如,装运订单 A 需要一定数量的项目 1。装运订单和项目作为实体存储并有自己的活动。装运订单 B 在 A 完成之前与最后一个项目 1 一起装运。项目 1 的活动取消装运订单 A .)
我以为我正在打印 Dynamo 纸,所以如果我在这里将两者混为一谈,请原谅我。我见过不少受 Dynamo 和 BigTable 影响的“NoSQL”项目,尤其是它们如何通过键和分区数据来处理实体。我想知道这个 Entity-Message-Activity 模型是否影响了其中的任何一个?
或者,更具体地说,如果我在 HBase、Cassandra、Riak 等中有一个跨越多个实体的操作,我是否需要自己实现一个 Activity(作为应用程序中的更多设计模式) ,还是有某种现有的框架?还是他们完全做了其他事情,使整个问题变得毫无意义?
谢谢!