出版过“实现DDD”一书的Vaughn Vernon在twitter质疑Orleans不是一个Actor模型,因为总是存在的Actor组件模型好像容易产生误差。
但是Sergey认为常驻内存的模型不容易产生误差,因为它消除了竞争和简化了失败恢复。
Twitter讨论
INFQ关于这段对话的文章:http://www.infoq.com/news/2014/07/approaches-actor-model-net
我个人认为:Orleans实际力图重新以Actor异步消息思路重新开发一个EJB容器,区别于EJB是同步事务慢的特点,Orleans应该是吸取了EJB简化网络复杂的设计思路,但是能否成功?是否会发生抽象泄漏还有待观察,这也是Reactive运动倡导拥抱网络的原因所在,但是网络如果像Web那样简单确实是可以拥抱的,比如现在前端Angular也是倡导拥抱Web,打败了后端MVC框架JSF等,这些后端MVC框架就是当初视图避免程序员接触Web底层,结果搞得比Web底层还要复杂而失败。
根据CAP定律,网络之间的丢包是应该允许的,而Actor模型好像把这种丢包处理扔给程序员开发,那么程序员就要模拟丢包现场,那么模拟软件能那么逼真吗?恐怕容易造成程序员刻舟求剑的解决丢包容错吧,这些问题至少应该由中间件来完成。