This is an automated email from the ASF dual-hosted git repository.
pjfanning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko.git
The following commit(s) were added to refs/heads/main by this push:
new a7c2eb92b5 chore: mark typed persistence query APIs as stable (#3636)
a7c2eb92b5 is described below
commit a7c2eb92b561d9e3f66c6a8cb328c5f5e8e6941e
Author: PJ Fanning <[email protected]>
AuthorDate: Tue Oct 20 06:24:37 2026 +0100
chore: mark typed persistence query APIs as stable (#3636)
Motivation:
TimestampOffset, the typed EventEnvelope and the typed persistence query
traits are stable and implemented by persistence plugins, but are still
marked @ApiMayChange.
Modification:
Remove @ApiMayChange (and now-unused imports) from TimestampOffset, typed
EventEnvelope and the javadsl/scaladsl typed query traits: eventsBySlices,
currentEventsBySlices, eventsByPersistenceId, currentEventsByPersistenceId,
loadEvent, eventTimestamp and DurableStateStoreBySliceQuery. The
starting-from-snapshot queries remain @ApiMayChange.
Drop the "This API may change" note from the durable state query docs.
Result:
These APIs are covered by the normal binary compatibility guarantees.
Annotation-only change, no bytecode change.
Tests:
- Not run locally - annotation-only change, left to CI; scalafmt applied
References:
None - API stabilization
---
docs/src/main/paradox/durable-state/persistence-query.md | 2 +-
.../src/main/scala/org/apache/pekko/persistence/query/Offset.scala | 2 --
.../scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala | 2 --
.../query/typed/javadsl/CurrentEventsByPersistenceIdTypedQuery.scala | 2 --
.../persistence/query/typed/javadsl/CurrentEventsBySliceQuery.scala | 2 --
.../persistence/query/typed/javadsl/DurableStateStoreBySliceQuery.scala | 2 --
.../pekko/persistence/query/typed/javadsl/EventTimestampQuery.scala | 2 --
.../query/typed/javadsl/EventsByPersistenceIdTypedQuery.scala | 2 --
.../pekko/persistence/query/typed/javadsl/EventsBySliceQuery.scala | 2 --
.../apache/pekko/persistence/query/typed/javadsl/LoadEventQuery.scala | 2 --
.../query/typed/scaladsl/CurrentEventsByPersistenceIdTypedQuery.scala | 2 --
.../persistence/query/typed/scaladsl/CurrentEventsBySliceQuery.scala | 2 --
.../query/typed/scaladsl/DurableStateStoreBySliceQuery.scala | 2 --
.../pekko/persistence/query/typed/scaladsl/EventTimestampQuery.scala | 2 --
.../query/typed/scaladsl/EventsByPersistenceIdTypedQuery.scala | 2 --
.../pekko/persistence/query/typed/scaladsl/EventsBySliceQuery.scala | 2 --
.../apache/pekko/persistence/query/typed/scaladsl/LoadEventQuery.scala | 2 --
17 files changed, 1 insertion(+), 33 deletions(-)
diff --git a/docs/src/main/paradox/durable-state/persistence-query.md
b/docs/src/main/paradox/durable-state/persistence-query.md
index be2aff61df..dd361fce7b 100644
--- a/docs/src/main/paradox/durable-state/persistence-query.md
+++ b/docs/src/main/paradox/durable-state/persistence-query.md
@@ -44,7 +44,7 @@ Changes to durable state can be queried in two ways,
depending on which queries
purpose is to evenly distribute all persistence ids over the slices.
`sliceForPersistenceId` returns the slice of a
persistence id and `sliceRanges` splits all slices into a given number of
ranges, for example to run one query per range.
This is similar to
@ref:[EventsBySlice](../persistence-query.md#eventsbyslice-and-currenteventsbyslice)
for event
- sourced entities. This API may change.
+ sourced entities.
Refer to the documentation of the state store plugin you are using for which
of these queries it supports.
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/Offset.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/Offset.scala
index 95e9b65a20..50b1620121 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/Offset.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/Offset.scala
@@ -17,7 +17,6 @@ import java.time.Instant
import java.util.UUID
import org.apache.pekko
-import pekko.annotation.ApiMayChange
import pekko.util.UUIDComparator
object Offset {
@@ -101,7 +100,6 @@ object TimestampOffset {
* @param seen
* List of sequence nrs for every persistence id seen at this timestamp
*/
-@ApiMayChange
final case class TimestampOffset(timestamp: Instant, readTimestamp: Instant,
seen: Map[String, Long]) extends Offset {
/** Java API */
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala
index 5f8018365a..be42dc8161 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/EventEnvelope.scala
@@ -17,7 +17,6 @@ import java.util.{ Set => JSet }
import java.util.Optional
import org.apache.pekko
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.Offset
import pekko.util.HashCode
@@ -134,7 +133,6 @@ object EventEnvelope {
*
* API May Change
*/
-@ApiMayChange
final class EventEnvelope[Event](
val offset: Offset,
val persistenceId: String,
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/CurrentEventsByPersistenceIdTypedQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/CurrentEventsByPersistenceIdTypedQuery.scala
index 75e57df815..10f3a8b0f5 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/CurrentEventsByPersistenceIdTypedQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/CurrentEventsByPersistenceIdTypedQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.javadsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.javadsl.ReadJournal
import pekko.persistence.query.typed.EventEnvelope
import pekko.stream.javadsl.Source
@@ -25,7 +24,6 @@ import pekko.stream.javadsl.Source
*
* API May Change
*/
-@ApiMayChange
trait CurrentEventsByPersistenceIdTypedQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/CurrentEventsBySliceQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/CurrentEventsBySliceQuery.scala
index 553146061b..1624e7af3d 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/CurrentEventsBySliceQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/CurrentEventsBySliceQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.javadsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.japi.Pair
import pekko.persistence.query.Offset
import pekko.persistence.query.javadsl.ReadJournal
@@ -27,7 +26,6 @@ import pekko.stream.javadsl.Source
*
* API May Change
*/
-@ApiMayChange
trait CurrentEventsBySliceQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/DurableStateStoreBySliceQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/DurableStateStoreBySliceQuery.scala
index f061a1decb..bc6e3fdf46 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/DurableStateStoreBySliceQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/DurableStateStoreBySliceQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.javadsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.japi.Pair
import pekko.persistence.query.DurableStateChange
import pekko.persistence.query.Offset
@@ -29,7 +28,6 @@ import pekko.stream.javadsl.Source
*
* API May Change
*/
-@ApiMayChange
trait DurableStateStoreBySliceQuery[A] extends DurableStateStore[A] {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventTimestampQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventTimestampQuery.scala
index 59ce2c702d..1ebb1ef158 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventTimestampQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventTimestampQuery.scala
@@ -18,7 +18,6 @@ import java.util.Optional
import java.util.concurrent.CompletionStage
import org.apache.pekko
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.javadsl.ReadJournal
/**
@@ -26,7 +25,6 @@ import pekko.persistence.query.javadsl.ReadJournal
*
* API May Change
*/
-@ApiMayChange
trait EventTimestampQuery extends ReadJournal {
def timestampOf(persistenceId: String, sequenceNr: Long):
CompletionStage[Optional[Instant]]
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventsByPersistenceIdTypedQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventsByPersistenceIdTypedQuery.scala
index 6e925e92d7..eb265daece 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventsByPersistenceIdTypedQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventsByPersistenceIdTypedQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.javadsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.javadsl.ReadJournal
import pekko.persistence.query.typed.EventEnvelope
import pekko.stream.javadsl.Source
@@ -25,7 +24,6 @@ import pekko.stream.javadsl.Source
*
* API May Change
*/
-@ApiMayChange
trait EventsByPersistenceIdTypedQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventsBySliceQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventsBySliceQuery.scala
index 190851788a..49fab60916 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventsBySliceQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/EventsBySliceQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.javadsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.japi.Pair
import pekko.persistence.query.Offset
import pekko.persistence.query.javadsl.ReadJournal
@@ -32,7 +31,6 @@ import pekko.stream.javadsl.Source
*
* API May Change
*/
-@ApiMayChange
trait EventsBySliceQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/LoadEventQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/LoadEventQuery.scala
index 65f3eaff69..8973a9ffd6 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/LoadEventQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/javadsl/LoadEventQuery.scala
@@ -16,7 +16,6 @@ package org.apache.pekko.persistence.query.typed.javadsl
import java.util.concurrent.CompletionStage
import org.apache.pekko
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.javadsl.ReadJournal
import pekko.persistence.query.typed.EventEnvelope
@@ -25,7 +24,6 @@ import pekko.persistence.query.typed.EventEnvelope
*
* API May Change
*/
-@ApiMayChange
trait LoadEventQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/CurrentEventsByPersistenceIdTypedQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/CurrentEventsByPersistenceIdTypedQuery.scala
index f07776d386..c8d4f460ff 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/CurrentEventsByPersistenceIdTypedQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/CurrentEventsByPersistenceIdTypedQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.scaladsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.scaladsl.ReadJournal
import pekko.persistence.query.typed.EventEnvelope
import pekko.stream.scaladsl.Source
@@ -25,7 +24,6 @@ import pekko.stream.scaladsl.Source
*
* API May Change
*/
-@ApiMayChange
trait CurrentEventsByPersistenceIdTypedQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/CurrentEventsBySliceQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/CurrentEventsBySliceQuery.scala
index 270f25cc8a..6931bf217f 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/CurrentEventsBySliceQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/CurrentEventsBySliceQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.scaladsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.Offset
import pekko.persistence.query.scaladsl.ReadJournal
import pekko.persistence.query.typed.EventEnvelope
@@ -26,7 +25,6 @@ import pekko.stream.scaladsl.Source
*
* API May Change
*/
-@ApiMayChange
trait CurrentEventsBySliceQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/DurableStateStoreBySliceQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/DurableStateStoreBySliceQuery.scala
index 8cf9328f46..bd44c7e8df 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/DurableStateStoreBySliceQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/DurableStateStoreBySliceQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.scaladsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.DurableStateChange
import pekko.persistence.query.Offset
import pekko.persistence.state.scaladsl.DurableStateStore
@@ -28,7 +27,6 @@ import pekko.stream.scaladsl.Source
*
* API May Change
*/
-@ApiMayChange
trait DurableStateStoreBySliceQuery[A] extends DurableStateStore[A] {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventTimestampQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventTimestampQuery.scala
index f028081078..668487f5f5 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventTimestampQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventTimestampQuery.scala
@@ -18,7 +18,6 @@ import java.time.Instant
import scala.concurrent.Future
import org.apache.pekko
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.scaladsl.ReadJournal
/**
@@ -26,7 +25,6 @@ import pekko.persistence.query.scaladsl.ReadJournal
*
* API May Change
*/
-@ApiMayChange
trait EventTimestampQuery extends ReadJournal {
def timestampOf(persistenceId: String, sequenceNr: Long):
Future[Option[Instant]]
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventsByPersistenceIdTypedQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventsByPersistenceIdTypedQuery.scala
index 9e05b1751f..f53fde4759 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventsByPersistenceIdTypedQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventsByPersistenceIdTypedQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.scaladsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.scaladsl.ReadJournal
import pekko.persistence.query.typed.EventEnvelope
import pekko.stream.scaladsl.Source
@@ -25,7 +24,6 @@ import pekko.stream.scaladsl.Source
*
* API May Change
*/
-@ApiMayChange
trait EventsByPersistenceIdTypedQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventsBySliceQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventsBySliceQuery.scala
index 921ffbf152..6227a9f5f4 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventsBySliceQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/EventsBySliceQuery.scala
@@ -15,7 +15,6 @@ package org.apache.pekko.persistence.query.typed.scaladsl
import org.apache.pekko
import pekko.NotUsed
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.Offset
import pekko.persistence.query.scaladsl.ReadJournal
import pekko.persistence.query.typed.EventEnvelope
@@ -31,7 +30,6 @@ import pekko.stream.scaladsl.Source
*
* API May Change
*/
-@ApiMayChange
trait EventsBySliceQuery extends ReadJournal {
/**
diff --git
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/LoadEventQuery.scala
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/LoadEventQuery.scala
index 4843eab0d4..a383de0440 100644
---
a/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/LoadEventQuery.scala
+++
b/persistence-query/src/main/scala/org/apache/pekko/persistence/query/typed/scaladsl/LoadEventQuery.scala
@@ -16,7 +16,6 @@ package org.apache.pekko.persistence.query.typed.scaladsl
import scala.concurrent.Future
import org.apache.pekko
-import pekko.annotation.ApiMayChange
import pekko.persistence.query.scaladsl.ReadJournal
import pekko.persistence.query.typed.EventEnvelope
@@ -25,7 +24,6 @@ import pekko.persistence.query.typed.EventEnvelope
*
* API May Change
*/
-@ApiMayChange
trait LoadEventQuery extends ReadJournal {
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]