migesok commented on code in PR #2027: URL: https://github.com/apache/pekko/pull/2027#discussion_r2276239645
########## persistence/src/main/scala/org/apache/pekko/persistence/journal/AsyncWriteJournal.scala: ########## @@ -67,9 +67,21 @@ trait AsyncWriteJournal extends Actor with WriteJournalBase with AsyncRecovery { final val receiveWriteJournal: Actor.Receive = { // cannot be a val in the trait due to binary compatibility val replayDebugEnabled: Boolean = config.getBoolean("replay-filter.debug") + val enableGlobalWriteResponseOrder: Boolean = config.getBoolean("write-response-global-order") + val eventStream = context.system.eventStream // used from Future callbacks implicit val ec: ExecutionContext = context.dispatcher + // should be a private method in the trait, but it needs the enableGlobalWriteResponseOrder field which can't be + // moved to the trait level because adding any fields there breaks bincompat + def sendWriteResponse(msg: Any, snr: Long, target: ActorRef, sender: ActorRef): Unit = { Review Comment: @pjfanning could you elaborate please? If I move the field and the method to the trait level, it will break all the 3rd party journal plugins built against the previous version. In this case we would have to mark the whole `AsyncWriteJournal` as an internal API, leaving no proper persistence plugin API for the users. Ideally the plugin API should be a pure trait, without fields, so Pekko-Persistence internals can evolve freely but this is what we have right now. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@pekko.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@pekko.apache.org For additional commands, e-mail: notifications-h...@pekko.apache.org