使用Akka實現CQRS/ES的原始碼

banq發表於2014-11-04


這是一篇介紹如何使用Akka實現CQRS和EventSourcing的文章,原始碼專案下載:https://github.com/eigengo/akka-csug

該原始碼中使用PersistentActor 作為CQRS中命令的處理,而PersistentView 作為查詢的處理。

UserExerciseProcessor 是處理命令的一個案例,程式碼如下:

class UserExerciseProcessor extends PersistentActor {
  import AccelerometerData._
  import UserExerciseProtocol._

  private var buffer: BitVector = BitVector.empty

  override val persistenceId: String = "user-exercise-persistence"

  override val receiveRecover: Receive = Actor.emptyBehavior

  override def receiveCommand: Receive = ???

}
<p class="indent">


UserExerciseView 是處理顯示查詢:

class UserExerciseView extends PersistentView {
  import UserExerciseProtocol._
  import UserPushNotification._
  import actors._

  private var exercises: List[ClassifiedExercise] = Nil

  override val viewId: String = "user-exercise-view"

  override val persistenceId: String = "user-exercise-persistence"

  override def receive: Receive = ???
}
<p class="indent">

相關文章