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

   https://github.com/akka/akka-projection/releases/tag/v1.4.1 is now available 
under Apache License, v2.0.
   
   Ports two fixes from akka-projection, adapted for pekko namespaces.
   
   ### PR #908 — `groupedWithinAsync` only stored the last offset of the group
   Root cause: `adaptedHandlerForGroupedAsync` called `addInflights` (in-memory 
only) instead of persisting offsets, so on restart only the last offset was 
known, triggering "Rejected envelope from backtracking" errors.
   
   - Adds internal `OffsetStoredByHandler` offset strategy to signal that the 
handler adapter owns offset persistence (semantically distinct from 
`ExactlyOnce`)
   - Renames `exactlyOnceProcessing` → `offsetStoredByHandlerProcessing`; both 
`ExactlyOnce` and `OffsetStoredByHandler` route through it
   - `adaptedHandlerForGroupedAsync` now calls 
`offsetStore.saveOffsets(offsets)` with all offsets in the group after handler 
processing
   - `groupedWithinAsync` uses `OffsetStoredByHandler()` instead of 
`AtLeastOnce(afterEnvelopes=1, orAfterDuration=Zero)` — processing of next 
group now waits for previous group's offsets to be stored
   - `withRecoveryStrategy` updated in R2DBC, JDBC, and Slick projection impls 
to handle the new strategy
   
   ### PR #898 — Batched multi-row INSERT for timestamp offsets
   - Adds `offsetBatchSize` setting (default `20`, config key 
`pekko.projection.r2dbc.offset-store.offset-batch-size`) to 
`R2dbcProjectionSettings`
   - `insertTimestampOffsetInTx` now uses a single multi-row `INSERT … VALUES 
(…),(…),…` per batch instead of R2DBC `Statement.add()` batch, reducing 
round-trips when saving many offsets (e.g. from `groupedWithinAsync`)
   - `bindTimestampOffsetRecord` gains an optional `bindStartIndex` parameter 
(default `0`) for binding into multi-row statements; `MySQLR2dbcOffsetStore` 
override is unaffected
   - Fixes error message URL: `pekko-persistence-r2dbc/issues` → 
`pekko-projection/issues`


-- 
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