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]

Reply via email to