pjfanning opened a new pull request, #660:
URL: https://github.com/apache/pekko-projection/pull/660

   ### Motivation
   The `seen` entries of the protocol `Offset` are redundant when they only 
contain the persistence id and sequence number of the enclosing `Event` or 
`FilteredEvent`. akka/akka-projection#999 made the consumer tolerate an empty 
`seen` so that producers can omit it.
   
   ### Modification
   - When converting an `Event` or `FilteredEvent` to an `EventEnvelope`, the 
gRPC consumer fills in `seen` with `persistenceId -> seqNr` of the enclosing 
event if the protocol offset has no `seen` entries.
   - The conversion moved into an internal helper on the `GrpcReadJournal` 
companion so it can be tested directly. Akka has this logic in 
`ProtobufProtocolConversions`, which Pekko doesn't have yet (it arrives with 
producer push, akka/akka-projection#932).
   - The `event_producer.proto` comment documents that `seen` is optional.
   
   ### Result
   Consumers handle offsets without `seen` correctly.
   
   Rolling upgrades: producers still send `seen`, so this is receiver-side 
tolerance only. The wire format is unchanged.
   
   ### Tests
   - `sbt "grpc-test/Test/testOnly 
org.apache.pekko.projection.grpc.consumer.scaladsl.GrpcReadJournalOffsetSpec"`: 
the empty-`seen` case failed before the fix and passes after; the case with 
`seen` present passes both before and after.
   - `grpc/mimaReportBinaryIssues`: not applicable, MiMa is disabled for the 
`grpc` module (new in 2.0.0).
   - Native scalafmt on changed Scala files, `sbt headerCreateAll`, whitespace 
diff check: clean.
   
   ### References
   Refs akka/akka-projection#999 
(https://github.com/akka/akka-projection/pull/999) - source of the ported code. 
The Akka 1.5.0 change date (2026-10-25) has passed. Upstream had no test; the 
test here is new.
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to