我正在通过福勒的Analysis Patterns和我自己在Clojure中的编程示例,以便更好地理解这两者。
暂时将持久性/持久性问题放在一边1,似乎Clojure引用它们的同步将是明显最好的方法。
另一方面,给定由帐户中的条目触发的过帐规则,在更多帐户中生成更多事务,也许代理和它们的异步更新会更好。在这一点上,我可能不得不尝试两者兼而有之。 有人对这个特定的设计决定有什么建议吗?
1我假设如果能够很好地使用这些功能和概念,我将能够将所有内容映射到合理的数据库模式中。
答案 0 :(得分:5)
Clojure中的所有可变对象都旨在为您提供一致的视图,了解事物随时间的变化。如果您有多个对象相互更改,那么您需要创建一个包含所有对象的时间轴,并且refs仅用于此目的。
您可能还对观察者(add-watch reference key fn)
的概念感兴趣,您可以添加这些概念以引用事务不变量。