def apply()

in pekko-sample-persistence-dc-scala/src/main/scala/sample/persistence/res/counter/ThumbsUpCounter.scala [37:64]


  def apply(replicationId: ReplicationId): Behavior[Command] =
    Behaviors.setup { ctx =>
      ReplicatedEventSourcing.commonJournalConfig(replicationId, MainApp.AllReplicas, CassandraReadJournal.Identifier) {
        replicationContext =>
          EventSourcedBehavior[Command, Event, State](
            persistenceId = replicationId.persistenceId,
            emptyState = State(Set.empty),
            commandHandler = (state, cmd) =>
              cmd match {
                case GiveThumbsUp(_, userId, replyTo) =>
                  Effect.persist(GaveThumbsUp(userId)).thenRun { state2 =>
                    ctx.log.info("Thumbs-up by {}, total count {}", userId, state2.users.size)
                    replyTo ! state2.users.size
                  }
                case GetCount(_, replyTo) =>
                  replyTo ! state.users.size
                  Effect.none
                case GetUsers(_, replyTo) =>
                  replyTo ! state
                  Effect.none
              },
            eventHandler = (state, event) =>
              event match {
                case GaveThumbsUp(userId) =>
                  state.add(userId)
              })
      }
    }