【发布时间】:2018-05-20 06:04:05
【问题描述】:
我们所有的后端服务都是用 Scala 编写的。我们主要使用 Cats 编写纯函数式 Scala。
我试图弄清楚 Cats 或 Scala 中是否有一种设计模式,我可以使用它来设计 EventLogger。
这个 eventLogger 应该在请求流经逻辑时收集“事件”(简单的键值)。在请求结束时,我想将收集到的事件写入数据存储。我们已经有一个“上下文”隐式参数,它被传递给所有方法。我可以将此 EventLogger 添加到我的 Context 类中,它可以从我的大部分代码中访问事件记录器。现在我想弄清楚如何在不使用可变集合的情况下设计 eventLogger 本身。
过去我习惯用 akka actor 来收集状态来管理变异状态。我不希望仅仅为此将 Akka 引入我们的类路径。
【问题讨论】:
-
为什么不使用
WriterT?
标签: scala scala-cats