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 dac181849b docs: 2.0.0 release notes (#3606)
dac181849b is described below

commit dac181849b29e0e96e2a199eddd38bbf10618cf5
Author: PJ Fanning <[email protected]>
AuthorDate: Fri Oct 23 13:40:56 2026 +0100

    docs: 2.0.0 release notes (#3606)
    
    * docs: consolidate 2.0.0 milestone release notes into a 2.0.0 entry
    
    Motivation:
    2.0.0-M5 is likely to become the 2.0.0 release, so the per-milestone
    release notes should be replaced by a single, more detailed 2.0.0 entry.
    
    Modification:
    Replace the 2.0.0-M1 to M4 sections with one 2.0.0 section that summarises
    the 2.0.0-M1 to M5 GitHub milestones: main changes, upgrade notes, bug 
fixes,
    security hardening, changes ported from Akka, additions, changes,
    performance work, removed code, deprecations and dependency versions.
    
    Result:
    Users get one release notes entry covering all of the 2.0.0 work.
    
    Tests:
    - Not run - docs only
    
    References:
    None - release notes for the 2.0.0 release
    
    * docs: Akka changes are ported up to Akka 2.8.5 in 2.0.0 release notes
    
    * docs: mention Scala 3.9 support in 2.0.0 release notes
    
    * docs: move 2.0.0 upgrade warnings into the 1.x to 2.x migration guide
    
    * docs: note the at.yawk.lz4 dependency in the 1.x to 2.x migration guide
    
    * docs: warn about binary compatibility and other Pekko modules in 2.0.0 
release notes
    
    * docs: address review comments and add late 2.0.0-M5 changes
    
    - Name Scala 3.3.x as the minimum Scala 3 version and note Scala 3.9 testing
    - Agrona --add-opens applies to classpath Artery users, not only JPMS users
    - Add the PersistenceTestKitReadJournal offset change to the migration guide
    - Add PRs 3605, 3607-3611, 3615, 3616, 3621 and 3628 to the release notes
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    
    * docs: add recently merged 2.0.0-M5 changes to the 2.0.0 release notes
    
    * docs: Akka changes are ported up to Akka 2.9.0 in 2.0.0 release notes
    
    ---------
    
    Co-authored-by: Claude Opus 5.5 <[email protected]>
---
 .../paradox/migration/migration-guide-1.x-2.x.md   |  21 ++
 .../src/main/paradox/release-notes/releases-2.0.md | 299 ++++++++++++++++++---
 2 files changed, 284 insertions(+), 36 deletions(-)

diff --git a/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md 
b/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md
index 90da020b86..59fb37a56f 100644
--- a/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md
+++ b/docs/src/main/paradox/migration/migration-guide-1.x-2.x.md
@@ -60,6 +60,27 @@ rolling updates. 
([PR3425](https://github.com/apache/pekko/pull/3425))
 * `RemoveInternalClusterShardingData` no longer supports removing Cluster 
Sharding coordinator data stored
 by Akka 2.3.x. The `-2.3` program argument and the `remove2dot3Data` parameter 
of
 `RemoveInternalClusterShardingData.remove` have been removed. 
([PR3608](https://github.com/apache/pekko/pull/3608))
+* In pekko-persistence-testkit, the `PersistenceTestKitReadJournal` tag 
queries (`eventsByTag`,
+`currentEventsByTag`) and the live `eventsBySlices` query now put a 
`TimestampOffset` in their envelopes instead of
+`Sequence`. Code that cast these offsets to `Sequence` needs updating; the 
per-persistence-id sequence number is
+still available as `envelope.sequenceNr`. These queries also now accept a 
`TimestampOffset` to resume from.
+([PR3615](https://github.com/apache/pekko/pull/3615))
+
+## Dependency Changes in Pekko 2.x
+* Java 17 is the minimum supported Java version and Scala 2.12 is no longer 
supported. Pekko 2.x is published for
+Scala 2.13 and Scala 3.3 (LTS), so Scala 3 users need Scala 3.3.x or later. 
Pekko 2.x is also tested with
+Scala 3.9.
+* Agrona was updated from 1.x to 2.x, which
+[means](https://github.com/aeron-io/agrona/wiki/Change-Log#200-2024-12-17) you 
may have to add the JVM option
+`--add-opens java.base/jdk.internal.misc=ALL-UNNAMED` if you use Pekko Remote 
with Artery. This applies to
+applications on the classpath as well as those that use the Java Module System 
(`ALL-UNNAMED` covers classpath code).
+* pekko-serialization-jackson depends on `at.yawk.lz4:lz4-java` instead of the 
unmaintained `org.lz4:lz4-java`.
+This change was made in Pekko 1.4.0, so you will only notice it if you are 
upgrading from an earlier Pekko 1.x
+release. The fork is a drop-in replacement with important bug fixes. If your 
build also depends on
+`org.lz4:lz4-java`, consider excluding it so that the two jars are not both on 
the classpath.
+([PR2537](https://github.com/apache/pekko/pull/2537))
+* The `ssl-config` library is no longer a dependency of Pekko and the 
`ssl-config` configuration sections have
+been removed (see Removed configuration below). 
([PR2127](https://github.com/apache/pekko/pull/2127))
 
 ## Configuration Changes in Pekko 2.x
 
diff --git a/docs/src/main/paradox/release-notes/releases-2.0.md 
b/docs/src/main/paradox/release-notes/releases-2.0.md
index 4f784cdd10..28a4277fb8 100644
--- a/docs/src/main/paradox/release-notes/releases-2.0.md
+++ b/docs/src/main/paradox/release-notes/releases-2.0.md
@@ -2,62 +2,289 @@
 
 Apache Pekko 2.0.x releases support Java 17 and above.
 
-## 2.0.0-M4
+## 2.0.0
 
-This is a milestone release and is aimed at testing this new major version
-by early adopters. This is experimental. This release should not be used in 
production.
+@@@ warning
 
-See the [GitHub Milestone for 
2.0.0-M4](https://github.com/apache/pekko/milestone/31?closed=1) for a fuller 
list of changes.
+Apache Pekko 2.0.0 is a new major release. Do not assume binary compatibility 
with Pekko 1.x: libraries built
+against Pekko 1.x need to be rebuilt against Pekko 2.0.0, and some code will 
need source changes. Please read the
+@ref:[Migration Guide](../migration/migration-guide-1.x-2.x.md) before 
upgrading.
 
-### Main changes
+It could take months for the other Pekko modules, such as Pekko HTTP, Pekko 
Connectors, Pekko gRPC, Pekko Management
+and the persistence plugins, to have 2.0.0 releases. Until then, users might 
be able to use the 2.0.0 milestone
+releases of those modules with Pekko 2.0.0, but you should test very carefully 
before relying on this in production.
+
+@@@
 
-* Added many Akka changes that have recently become Apache Licensed (up to 
Akka 2.8.4).
-* Some more deprecated code has been removed but the changes are significantly 
smaller in this area than in 2.0.0-M1.
-* Switch to PEKK as the default magic header in pekko-remote Artery comms 
([PR3425](https://github.com/apache/pekko/pull/3425)).
-  See the @ref:[Migration Guide](../migration/migration-guide-1.x-2.x.md).
+The changes in this release were previewed in a series of milestone releases. 
See the GitHub milestones for
+[2.0.0-M1](https://github.com/apache/pekko/milestone/5?closed=1),
+[2.0.0-M2](https://github.com/apache/pekko/milestone/19?closed=1),
+[2.0.0-M3](https://github.com/apache/pekko/milestone/28?closed=1),
+[2.0.0-M4](https://github.com/apache/pekko/milestone/31?closed=1) and
+[2.0.0-M5](https://github.com/apache/pekko/milestone/35?closed=1) for a fuller 
list of changes.
 
-## 2.0.0-M3
+Some of the bug fixes listed below have also been backported to Pekko 1.x 
releases.
 
-This is a milestone release and is aimed at testing this new major version
-by early adopters. This is experimental. This release should not be used in 
production.
+### Main changes
 
-We recommend that anyone using previous 2.0.0 milestones upgrade to this 
release due to some important bug fixes.
+* Java 17 is the new minimum version (Java 8 and 11 are no longer supported) 
([#1730](https://github.com/apache/pekko/issues/1730), 
[PR1967](https://github.com/apache/pekko/pull/1967))
+* Scala 2.12 support has been dropped. Pekko 2.0.0 is published for Scala 2.13 
and Scala 3 ([#39](https://github.com/apache/pekko/issues/39), 
[PR1986](https://github.com/apache/pekko/pull/1986))
+* A lot of code that was deprecated in Pekko 1.x (and in Akka before that) has 
been removed - see the Removed section below
+* Big change for Java DSL users due to the removal of `pekko.japi.Function` 
(and related classes, such as `pekko.japi.function.FI` and `JAPI`) in favour of 
`pekko.japi.function.Function` and the other `pekko.japi.function` types. 
Lambdas should recompile ok but if you declared variables or functions 
explicitly, then you may need to change your imports 
([PR2001](https://github.com/apache/pekko/pull/2001), 
[PR2064](https://github.com/apache/pekko/pull/2064), 
[PR2078](https://github.com/apa [...]
+* Java APIs no longer leak Scala types: Scala `Future`, `Option`, `Tuple2` and 
Scala collections have been replaced with `CompletionStage`, `Optional`, 
`pekko.japi.Pair` and Java collections in a number of Java DSL methods, 
including the pekko-persistence Java APIs 
([PR1419](https://github.com/apache/pekko/pull/1419), 
[PR2007](https://github.com/apache/pekko/pull/2007), 
[PR2009](https://github.com/apache/pekko/pull/2009), 
[PR2092](https://github.com/apache/pekko/pull/2092), [#2086](https [...]
+* Added many Akka changes that have recently become Apache Licensed (up to and 
including Akka 2.9.0) - see the Ported from Akka section below
+* `sun.misc.Unsafe` is no longer used. The code has been migrated to use 
VarHandles ([PR1892](https://github.com/apache/pekko/pull/1892), 
[PR1894](https://github.com/apache/pekko/pull/1894), 
[PR1990](https://github.com/apache/pekko/pull/1990), 
[PR1995](https://github.com/apache/pekko/pull/1995), 
[PR3007](https://github.com/apache/pekko/pull/3007), 
[PR3008](https://github.com/apache/pekko/pull/3008))
+* Reflection usage in core modules has been replaced with 
MethodHandles/VarHandles where possible 
([PR3300](https://github.com/apache/pekko/pull/3300), 
[PR3312](https://github.com/apache/pekko/pull/3312))
+* New pekko-serialization-jackson3 module. Users who are happy with 
pekko-serialization-jackson, which uses Jackson 2, can stick with that 
([PR2348](https://github.com/apache/pekko/pull/2348))
+* Switch to `PEKK` as the default magic header in pekko-remote Artery comms. 
See @ref:[Changing TCP magic 
header](../additional/rolling-updates.md#changing-tcp-magic-header) for what 
this means for rolling updates 
([PR3425](https://github.com/apache/pekko/pull/3425))
+* Java 21 and 25 support improvements, including virtual thread support for 
more dispatcher types and JDK-aware ForkJoinPool tuning 
([#2232](https://github.com/apache/pekko/issues/2232), 
[PR2169](https://github.com/apache/pekko/pull/2169), 
[PR2242](https://github.com/apache/pekko/pull/2242), 
[PR2871](https://github.com/apache/pekko/pull/2871), 
[PR2890](https://github.com/apache/pekko/pull/2890))
+* Added [JSpecify](https://jspecify.dev/) nullness annotations to the Java DSL 
APIs of streams, persistence, actor-typed, cluster-sharding-typed and testkit 
([#2563](https://github.com/apache/pekko/issues/2563), 
[PR2617](https://github.com/apache/pekko/pull/2617), 
[PR2850](https://github.com/apache/pekko/pull/2850), 
[PR3380](https://github.com/apache/pekko/pull/3380))
+* A number of security hardening changes - see the Security Hardening section 
below
+* A number of configuration defaults have changed. See the Configuration 
Changes section of the @ref:[Migration 
Guide](../migration/migration-guide-1.x-2.x.md)
+
+### Upgrade notes
 
-See the [GitHub Milestone for 
2.0.0-M3](https://github.com/apache/pekko/milestone/28?closed=1) for a fuller 
list of changes.
+Please read the @ref:[Migration 
Guide](../migration/migration-guide-1.x-2.x.md) before upgrading. It covers the
+breaking API changes, dependency changes (such as the Agrona 2.x `--add-opens` 
requirement) and the configuration
+defaults that have changed in Pekko 2.0.0.
 
 ### Bug Fixes
 
-* The existing 2.0.0 milestones have issues related to high concurrency 
introduced when we switched away from sun.misc.Unsafe to using VarHandles.
+* Replaying a replicated event sourced actor from a snapshot caused a bug 
([PR2372](https://github.com/apache/pekko/pull/2372))
+* Emit `DeletedDurableState` for deleted durable state objects 
([PR2397](https://github.com/apache/pekko/pull/2397))
+* Fix close being called in cancel for statefulMap 
([PR2365](https://github.com/apache/pekko/pull/2365), 
[PR2385](https://github.com/apache/pekko/pull/2385))
+* Fix recoverWith on a failed stage 
([PR2631](https://github.com/apache/pekko/pull/2631), 
[PR2674](https://github.com/apache/pekko/pull/2674), 
[PR2712](https://github.com/apache/pekko/pull/2712))
+* Fix Source.combine with a single source and type-transforming fan-in 
strategies ([PR2726](https://github.com/apache/pekko/pull/2726))
+* Release lease on shard stop 
([PR2738](https://github.com/apache/pekko/pull/2738))
+* Fix ProducerController crash on restart with an empty unconfirmed buffer 
(durable queue) ([#2760](https://github.com/apache/pekko/issues/2760), 
[PR2762](https://github.com/apache/pekko/pull/2762))
+* Handle unexpected stop of the TLS actor gracefully 
([PR2801](https://github.com/apache/pekko/pull/2801))
+* Fix ByteString1C serialization to use a SerializationProxy 
([PR2929](https://github.com/apache/pekko/pull/2929))
+* Harden async DNS request id handling 
([PR2960](https://github.com/apache/pekko/pull/2960))
+* High concurrency issues introduced when switching from `sun.misc.Unsafe` to 
VarHandles ([PR3007](https://github.com/apache/pekko/pull/3007), 
[PR3008](https://github.com/apache/pekko/pull/3008))
+* MapAsyncPartitioned fixes: ordered stage completion after trailing resumed 
failures, parallel processing preserving order within a partition and a 
demand-resume deadlock ([PR3009](https://github.com/apache/pekko/pull/3009), 
[#2886](https://github.com/apache/pekko/issues/2886), 
[PR3365](https://github.com/apache/pekko/pull/3365))
+* Await in-flight completion on partner termination in SinkRef 
([PR3016](https://github.com/apache/pekko/pull/3016))
+* Prevent double materialization of SourceRef and SinkRef 
([PR3114](https://github.com/apache/pekko/pull/3114))
+* Release references to completed stage logics and to the initial interpreter 
shell in GraphInterpreter to avoid memory retention 
([PR3030](https://github.com/apache/pekko/pull/3030), 
[PR3031](https://github.com/apache/pekko/pull/3031), 
[#3243](https://github.com/apache/pekko/issues/3243))
+* Discard stale ReceiveTimeout after cancelReceiveTimeout to avoid NPE in 
actor-typed ([PR3086](https://github.com/apache/pekko/pull/3086))
+* Clean up stopped FSM transition listeners 
([PR3096](https://github.com/apache/pekko/pull/3096))
+* Preserve throttler tokens on failed writes 
([PR3097](https://github.com/apache/pekko/pull/3097))
+* Initialize timer stage deadlines in preStart instead of at construction 
([PR3111](https://github.com/apache/pekko/pull/3111))
+* Fix the current message reported to supervision in timer stages 
([PR3294](https://github.com/apache/pekko/pull/3294))
+* Fix close handling in unfoldResource and unfoldResourceAsync (avoid double 
close and delay close until a pending read completes) 
([PR3157](https://github.com/apache/pekko/pull/3157), 
[PR3172](https://github.com/apache/pekko/pull/3172))
+* Classic remoting robustness fixes: ignore stale ACKs, harden EndpointReader 
against dispatch errors, resume the reader after a failed handoff and buffer 
messages during passive handoff 
([PR3158](https://github.com/apache/pekko/pull/3158), 
[PR3166](https://github.com/apache/pekko/pull/3166), 
[PR3173](https://github.com/apache/pekko/pull/3173), 
[PR3205](https://github.com/apache/pekko/pull/3205), 
[PR3361](https://github.com/apache/pekko/pull/3361))
+* Validate the full UniqueAddress in Artery system message ACK/NACK handling 
([PR3175](https://github.com/apache/pekko/pull/3175))
+* Bound Artery stream shutdown 
([PR3317](https://github.com/apache/pekko/pull/3317))
+* Use `Locale.ROOT` for `toLowerCase`/`toUpperCase` calls 
([PR3159](https://github.com/apache/pekko/pull/3159))
+* Avoid NPE in the outbound TCP stage when upstream finishes before connect 
([PR3259](https://github.com/apache/pekko/pull/3259))
+* Close unregistered TCP channels on setup failure 
([PR3273](https://github.com/apache/pekko/pull/3273))
+* Suppress dead-letter logging during a terminating shutdown when disabled 
([PR3262](https://github.com/apache/pekko/pull/3262))
+* Expand Array arguments in MarkerLoggingAdapter log templates 
([PR3263](https://github.com/apache/pekko/pull/3263))
+* Deliver stashed timer messages for UnboundedStash and UnrestrictedStash 
([PR3264](https://github.com/apache/pekko/pull/3264), 
[#3265](https://github.com/apache/pekko/issues/3265))
+* Return a proper non-cancelled Cancellable from 
StubbedActorContext.scheduleOnce 
([PR3268](https://github.com/apache/pekko/pull/3268))
+* Fix deferred TLS output handling on inbound close and abort the TLS 
transport on session verification failure 
([PR3323](https://github.com/apache/pekko/pull/3323), 
[PR3324](https://github.com/apache/pekko/pull/3324))
+* Fix reentrant BatchingExecutor execution 
([PR3331](https://github.com/apache/pekko/pull/3331))
+* Notify BroadcastHub and PartitionHub consumers on materializer shutdown 
([#3345](https://github.com/apache/pekko/issues/3345), 
[PR3346](https://github.com/apache/pekko/pull/3346), 
[PR3347](https://github.com/apache/pekko/pull/3347))
+* Enforce resizer bounds and minimum pool size for AdjustPoolSize, including 
in ClusterRouterPool ([#3253](https://github.com/apache/pekko/issues/3253), 
[PR3364](https://github.com/apache/pekko/pull/3364), 
[PR3393](https://github.com/apache/pekko/pull/3393))
+* Support `java.math.BigInteger`/`BigDecimal` in cluster-metrics 
([#3385](https://github.com/apache/pekko/issues/3385), 
[PR3382](https://github.com/apache/pekko/pull/3382))
+* Invoke lifecycle signal handlers during snapshot recovery 
([PR3358](https://github.com/apache/pekko/pull/3358))
+* Stop PersistentActor by default when the RecoveryCompleted handler fails 
([PR3359](https://github.com/apache/pekko/pull/3359))
+* Filter messages from the remember-entities store 
([PR3411](https://github.com/apache/pekko/pull/3411))
+* Preserve StageActor demand across fused streams 
([#3459](https://github.com/apache/pekko/issues/3459), 
[PR3461](https://github.com/apache/pekko/pull/3461))
+* Handle post-Java 8 constant pool entries in LineNumbers 
([PR3465](https://github.com/apache/pekko/pull/3465))
+* Make AbstractPersistentActorWithTimers and AbstractFSMWithStash subclassable 
from Java when using Scala 3 
([PR3475](https://github.com/apache/pekko/pull/3475))
+* Use a Seq rather than a Set to hold TCP magic ByteStrings 
([PR3484](https://github.com/apache/pekko/pull/3484))
+* Stop cluster sharding entities stuck in passivation after a timeout 
([PR3573](https://github.com/apache/pekko/pull/3573))
+* Stop handing a reused `Mailbox` object to the fork-join dispatcher, which 
could permanently damage a ForkJoinPool work queue or stop a mailbox from 
running again. `Mailbox` no longer extends `ForkJoinTask` 
([#3613](https://github.com/apache/pekko/issues/3613), 
[#3620](https://github.com/apache/pekko/issues/3620), 
[PR3621](https://github.com/apache/pekko/pull/3621), 
[PR3628](https://github.com/apache/pekko/pull/3628), 
[PR3668](https://github.com/apache/pekko/pull/3668))
+* Keep colliding virtual nodes in ConsistentHash, so the ring no longer 
depends on the order in which nodes were added or removed. Routing only changes 
for keys that land on a colliding ring position, but during a rolling update 
nodes on 1.x and 2.x could route those few keys differently 
([PR3611](https://github.com/apache/pekko/pull/3611))
+* Resolve a `LogSource` for `getClass` results on Scala 3, so `Logging(system, 
getClass)` compiles ([#1538](https://github.com/apache/pekko/issues/1538), 
[PR3609](https://github.com/apache/pekko/pull/3609))
+* Allow overriding `testKit` with a `val` in `ScalaTestWithActorTestKit` 
([#1140](https://github.com/apache/pekko/issues/1140), 
[PR3610](https://github.com/apache/pekko/pull/3610))
+* Keep the `StashBufferImpl` instrumentation hooks from being inlined by the 
Scala 2.13 optimizer ([PR3616](https://github.com/apache/pekko/pull/3616))
+* Stop dispatcher failure reporting from recursing into a `StackOverflowError` 
([#3613](https://github.com/apache/pekko/issues/3613), 
[PR3622](https://github.com/apache/pekko/pull/3622))
 
-## 2.0.0-M2
+### Security Hardening
 
-This is a milestone release and is aimed at testing this new major version
-by early adopters. This is experimental. This release should not be used in 
production.
+* Pekko Remote TLS: optional hostname verification for classic remoting, 
warnings when hostname verification is not enabled or when TLS is not used, a 
new keystore-password config, eager SSLContext initialization in Artery so that 
misconfiguration fails fast and support for multiple certificates in the 
rotating keys engine `ca-cert-file` 
([PR3164](https://github.com/apache/pekko/pull/3164), 
[PR3200](https://github.com/apache/pekko/pull/3200), 
[PR3397](https://github.com/apache/pekko/pull [...]
+* Jackson `JsonTypeInfo.Id.MINIMAL_CLASS` is now treated as dangerous, like 
`Id.CLASS` ([PR3304](https://github.com/apache/pekko/pull/3304))
+* Resolve, check and parse manifests more carefully in the Jackson serializers 
([PR3503](https://github.com/apache/pekko/pull/3503))
+* New `max-decompressed-size` limit for Jackson payload decompression and for 
other compressed payloads (defaults to unlimited for Jackson) 
([PR3491](https://github.com/apache/pekko/pull/3491), 
[PR3502](https://github.com/apache/pekko/pull/3502), 
[#3504](https://github.com/apache/pekko/issues/3504), 
[PR3515](https://github.com/apache/pekko/pull/3515), 
[PR3597](https://github.com/apache/pekko/pull/3597))
+* Support `unlimited` for the Jackson stream-read constraints 
([PR3522](https://github.com/apache/pekko/pull/3522))
+* Bound inbound Artery TCP frame length at framing 
([PR3492](https://github.com/apache/pekko/pull/3492), 
[PR3524](https://github.com/apache/pekko/pull/3524))
+* Bound nesting depth when deserializing enclosed payloads 
([PR3500](https://github.com/apache/pekko/pull/3500))
+* Bound the number of entries in an Artery compression table advertisement 
([PR3510](https://github.com/apache/pekko/pull/3510))
+* Bound compression-pointer hops in DNS name parsing 
([PR3490](https://github.com/apache/pekko/pull/3490))
+* Don't resolve HOCON includes in config that arrived in a message 
([PR3505](https://github.com/apache/pekko/pull/3505))
+* Match actor selection wildcards without backtracking 
([PR3506](https://github.com/apache/pekko/pull/3506))
+* Reject messages whose parallel repeated protobuf fields disagree in length 
([PR3507](https://github.com/apache/pekko/pull/3507))
+* Bounds check the lookup table indexes in cluster gossip 
([PR3508](https://github.com/apache/pekko/pull/3508))
+* Don't dereference a null superclass in the protobuf allow list check 
([PR3509](https://github.com/apache/pekko/pull/3509))
+* Bound persistence event replay batches 
([PR3325](https://github.com/apache/pekko/pull/3325))
+* Add `maxTotalBufferSize` to MergeHub for an aggregate queue bound 
([PR3392](https://github.com/apache/pekko/pull/3392))
 
-See the [GitHub Milestone for 
2.0.0-M2](https://github.com/apache/pekko/milestone/19?closed=1) for a fuller 
list of changes.
+### Ported from Akka
 
-### Main changes
+These changes were copied from Akka releases (up to and including Akka 2.9.0) 
that are now available under the Apache License, version 2.0.
 
-* Added many Akka changes that have recently become Apache Licensed (up to 
Akka 2.8.2).
-* Some more deprecated code has been removed but the changes are significantly 
smaller in this area than in 2.0.0-M1.
+* Unpersistent versions of persistent behaviors for testing, renamed to 
`PersistenceProbeBehavior` 
([PR2456](https://github.com/apache/pekko/pull/2456), 
[PR2494](https://github.com/apache/pekko/pull/2494))
+* Custom stash support in persistence-typed 
([PR2433](https://github.com/apache/pekko/pull/2433))
+* Asking support in the typed BehaviorTestKit 
([PR2450](https://github.com/apache/pekko/pull/2450), 
[PR2453](https://github.com/apache/pekko/pull/2453))
+* ShardedDaemonProcess: throttle keep-alive messages and limit them to a 
subset of nodes ([PR2734](https://github.com/apache/pekko/pull/2734))
+* Distributed Data: wildcard prefix subscriptions in the Replicator 
([PR2735](https://github.com/apache/pekko/pull/2735))
+* Include roundtrip latency and sequence number in the heartbeat debug log 
([PR2736](https://github.com/apache/pekko/pull/2736))
+* Optimize PropsAdapter, typed actor context and system adapter 
([PR2743](https://github.com/apache/pekko/pull/2743), 
[PR2750](https://github.com/apache/pekko/pull/2750))
+* Auto-select SRV lookup for the name lookup if the entry looks like an SRV 
name ([PR2745](https://github.com/apache/pekko/pull/2745))
+* Run the DurableStateBehavior delete effect asynchronously like persist 
([PR2752](https://github.com/apache/pekko/pull/2752))
+* Use ClusterShuttingDown in the Distributed Data Replicator 
([PR2765](https://github.com/apache/pekko/pull/2765))
+* Add ScheduledClock to reduce nanoTime overhead in recency-based passivation 
([PR2766](https://github.com/apache/pekko/pull/2766))
+* Snapshot retention: only-one-snapshot optimization and only one retention 
cycle in progress at a time 
([PR2767](https://github.com/apache/pekko/pull/2767), 
[PR2797](https://github.com/apache/pekko/pull/2797))
+* Improve the cluster sharding StopShards coordinator command and fix the 
coordinator role ([PR2783](https://github.com/apache/pekko/pull/2783), 
[PR2918](https://github.com/apache/pekko/pull/2918))
+* Disable ClusterShardingHealthCheck after a configured duration post 
member-up ([PR2785](https://github.com/apache/pekko/pull/2785))
+* Remember entities throttling per region instead of per shard and improved 
DData remember entities logging and consistency 
([PR2786](https://github.com/apache/pekko/pull/2786), 
[PR2799](https://github.com/apache/pekko/pull/2799))
+* Improve error message for actorOf on a typed ActorSystem 
([PR2798](https://github.com/apache/pekko/pull/2798))
+* Fine-grained stream error logging control 
([PR2805](https://github.com/apache/pekko/pull/2805))
+* Add filtered, source and tags fields to typed EventEnvelope, 
EventsByPersistenceIdTyped queries and `withTaggerForState` 
([PR2807](https://github.com/apache/pekko/pull/2807), 
[PR2920](https://github.com/apache/pekko/pull/2920))
+* Support for external transport of replicated events in Replicated Event 
Sourcing ([PR2808](https://github.com/apache/pekko/pull/2808))
+* DnsResolutionActor and in-flight request deduplication 
([PR2919](https://github.com/apache/pekko/pull/2919))
+* Initialize the DistributedData extension from 
ExternalShardAllocationStrategy 
([PR2923](https://github.com/apache/pekko/pull/2923))
+* Make it possible to define the cluster `appVersion` later 
([PR2947](https://github.com/apache/pekko/pull/2947))
+* Support ActorSystem/ClassicActorSystemProvider serializer constructors and 
improve the error message ([PR2948](https://github.com/apache/pekko/pull/2948))
+* Runtime plugin configuration for DurableState 
([PR3058](https://github.com/apache/pekko/pull/3058))
+* Consistent-hashing shard allocation strategy 
([PR3270](https://github.com/apache/pekko/pull/3270))
+* Include the exception type in StatusReply toString when not text 
([PR3271](https://github.com/apache/pekko/pull/3271))
+* FilteredPayload placeholder for filtered journal events 
([PR3275](https://github.com/apache/pekko/pull/3275))
+* Scalable fan-out persistence query abstraction 
(`EventsBySliceFirehoseQuery`) and `EventsBySliceStartingFromSnapshotsQuery` 
([PR3277](https://github.com/apache/pekko/pull/3277))
+* Include sourceThread in the typed actor MDC 
([PR3357](https://github.com/apache/pekko/pull/3357))
+* Other Akka 2.8.4 changes 
([PR3432](https://github.com/apache/pekko/pull/3432))
+* Support default attributes on materializers 
([PR3647](https://github.com/apache/pekko/pull/3647))
+* Define a custom lease name for Cluster Sharding and Cluster Singleton 
([PR3648](https://github.com/apache/pekko/pull/3648))
+* Add `with` methods to the typed query `EventEnvelope` 
([PR3646](https://github.com/apache/pekko/pull/3646))
+* Predefined `JsonSerializable` and `CborSerializable` marker traits in 
pekko-serialization-jackson and pekko-serialization-jackson3, bound to 
`jackson-json` and `jackson-cbor` 
([PR3649](https://github.com/apache/pekko/pull/3649), 
[PR3666](https://github.com/apache/pekko/pull/3666))
+* Bind ScalaPB messages to the protobuf serializer when ScalaPB is on the 
classpath ([PR3651](https://github.com/apache/pekko/pull/3651))
+* Add `SerializedEvent` for writing events that are already serialized 
([PR3650](https://github.com/apache/pekko/pull/3650))
 
-## 2.0.0-M1
+### Additions
 
-This is a milestone release and is aimed at testing this new major version
-by early adopters. This is experimental. This release should not be used in 
production.
+* Add `ActorSystem.terminateAndAwait` and `ActorSystem.close` 
([PR2096](https://github.com/apache/pekko/pull/2096), 
[PR2486](https://github.com/apache/pekko/pull/2486))
+* Add `UntypedAbstractActorWithStash`, 
`UntypedAbstractActorWithUnboundedStash` and 
`UntypedAbstractActorWithUnrestrictedStash` 
([PR2097](https://github.com/apache/pekko/pull/2097))
+* Add actor-typed Java DSL `AbstractMatchingBehavior` 
([#2108](https://github.com/apache/pekko/issues/2108), 
[PR2379](https://github.com/apache/pekko/pull/2379))
+* Add logging variants for the Java DSL stash and timer actor base classes 
([#2520](https://github.com/apache/pekko/issues/2520), 
[PR3387](https://github.com/apache/pekko/pull/3387))
+* Add the timeout duration to the `ReceiveTimeout` message 
([PR3399](https://github.com/apache/pekko/pull/3399))
+* Add `andThen` and `compose` to `pekko.japi.function.Function` 
([#2144](https://github.com/apache/pekko/issues/2144), 
[PR2147](https://github.com/apache/pekko/pull/2147))
+* Add a throwing boolean supplier, `sneakyThrow` and `OptionalUtil` Java 
utilities ([PR2199](https://github.com/apache/pekko/pull/2199), 
[PR2218](https://github.com/apache/pekko/pull/2218), 
[PR2464](https://github.com/apache/pekko/pull/2464))
+* Add `CompletionStages` utility and make 
`timeoutCompletionStage`/`afterCompletionStage` accept Java Duration 
([PR2060](https://github.com/apache/pekko/pull/2060), 
[PR2063](https://github.com/apache/pekko/pull/2063), 
[PR2067](https://github.com/apache/pekko/pull/2067))
+* Add `StatusReply.fromTry` and `StatusReply.fromCallable` 
([PR2810](https://github.com/apache/pekko/pull/2810), 
[PR2812](https://github.com/apache/pekko/pull/2812))
+* Add `JournalPersistFailed` and `JournalPersistRejected` signals 
([PR1961](https://github.com/apache/pekko/pull/1961))
+* Add an AsyncWriteJournal option for disabling the Resequencer 
([PR2027](https://github.com/apache/pekko/pull/2027))
+* Add `DurableStateBehaviorTestKit` 
([PR3360](https://github.com/apache/pekko/pull/3360))
+* `PersistenceTestKitReadJournal` tag and slice queries support resuming from 
a `TimestampOffset` ([#1765](https://github.com/apache/pekko/issues/1765), 
[PR3615](https://github.com/apache/pekko/pull/3615))
+* The Java test kits now support JUnit Jupiter (JUnit 5 and 6). Pekko's own 
Java tests have been migrated from JUnit 4 
([#967](https://github.com/apache/pekko/issues/967), 
[PR2289](https://github.com/apache/pekko/pull/2289), 
[PR2724](https://github.com/apache/pekko/pull/2724), 
[PR2865](https://github.com/apache/pekko/pull/2865))
+* Java DSL TestKit `shutdownActorSystem` that takes Java Duration params 
([#2226](https://github.com/apache/pekko/issues/2226), 
[PR2277](https://github.com/apache/pekko/pull/2277))
+* Add virtualize support for thread-pool-executor (including the blocking IO 
dispatcher) and support setting the starting number of virtual threads 
([#2163](https://github.com/apache/pekko/issues/2163), 
[PR2169](https://github.com/apache/pekko/pull/2169), 
[PR2242](https://github.com/apache/pekko/pull/2242))
+* Make ForkJoinPool `minimum-runnable` configurable and auto-tune it on JDK 
25+ ([PR2871](https://github.com/apache/pekko/pull/2871), 
[PR2890](https://github.com/apache/pekko/pull/2890))
+* Support the `SO_REUSEPORT` socket option 
([PR2915](https://github.com/apache/pekko/pull/2915))
+* Add `ByteString.endsWith`, `indexOf` with from and to, and make 
`ByteString.copyToBuffer(buffer, offset)` public 
([PR2271](https://github.com/apache/pekko/pull/2271), 
[PR2862](https://github.com/apache/pekko/pull/2862), 
[PR2946](https://github.com/apache/pekko/pull/2946))
+* Add OSGi headers to pekko-pki and pekko-cluster-typed and compute OSGi 
imports for Pekko packages dynamically 
([PR2107](https://github.com/apache/pekko/pull/2107), 
[PR2112](https://github.com/apache/pekko/pull/2112), 
[PR2313](https://github.com/apache/pekko/pull/2313))
+* Add zstd compression to the Jackson serializers (`compression.algorithm = 
zstd`). zstd-jni is an optional dependency that you need to add yourself 
([PR3641](https://github.com/apache/pekko/pull/3641))
+* Add Scala 3.8 and 3.9 compatibility (Pekko is still published using Scala 
3.3 LTS) ([PR3072](https://github.com/apache/pekko/pull/3072), 
[PR3073](https://github.com/apache/pekko/pull/3073), 
[PR3074](https://github.com/apache/pekko/pull/3074), 
[PR3295](https://github.com/apache/pekko/pull/3295), 
[PR3303](https://github.com/apache/pekko/pull/3303))
 
-See the [GitHub Milestone for 
2.0.0-M1](https://github.com/apache/pekko/milestone/5?closed=1) for a fuller 
list of changes.
+The Stream API has been updated to add some extra operators.
 
-### Main changes
+* Add `Sink.source` and `materializeIntoSource` operators 
([#2222](https://github.com/apache/pekko/issues/2222), 
[PR2250](https://github.com/apache/pekko/pull/2250), 
[PR1831](https://github.com/apache/pekko/pull/1831))
+* Add `Sink#count` operator 
([#2182](https://github.com/apache/pekko/issues/2182), 
[PR2244](https://github.com/apache/pekko/pull/2244))
+* Add `onErrorResume` (including Java DSL, SubFlow and SubSource variants) and 
more recover operators for the Java DSL 
([#2116](https://github.com/apache/pekko/issues/2116), 
[PR2120](https://github.com/apache/pekko/pull/2120), 
[PR2336](https://github.com/apache/pekko/pull/2336), 
[PR2337](https://github.com/apache/pekko/pull/2337))
+* Add `onErrorContinue` operator 
([#2159](https://github.com/apache/pekko/issues/2159), 
[PR2322](https://github.com/apache/pekko/pull/2322))
+* Add `doOnFirst` operator 
([#2183](https://github.com/apache/pekko/issues/2183), 
[PR2363](https://github.com/apache/pekko/pull/2363))
+* Add `doOnCancel` operator 
([#2374](https://github.com/apache/pekko/issues/2374), 
[PR2375](https://github.com/apache/pekko/pull/2375))
+* Add `gzipDecompress` operator, replacing the deprecated `gunzip` (which has 
been removed) ([PR2406](https://github.com/apache/pekko/pull/2406))
+* Add `Source.fromOption` and `mapOption` operators 
([#2408](https://github.com/apache/pekko/issues/2408), 
[#2403](https://github.com/apache/pekko/issues/2403), 
[PR2413](https://github.com/apache/pekko/pull/2413), 
[PR2414](https://github.com/apache/pekko/pull/2414))
+* Add `Source.items` and an array based `Source.apply` 
([#2416](https://github.com/apache/pekko/issues/2416), 
[PR2424](https://github.com/apache/pekko/pull/2424), 
[PR2428](https://github.com/apache/pekko/pull/2428), 
[PR2429](https://github.com/apache/pekko/pull/2429))
+* Add `withContext` operators 
([PR3199](https://github.com/apache/pekko/pull/3199))
+* Add an `alsoTo` overload with configurable cancellation propagation 
([PR3127](https://github.com/apache/pekko/pull/3127))
+* Add supervision strategy support to more operators that accept user 
functions (`groupedWeightedWithin`, `batch`, `expand` and `extrapolate`) and 
log supervision Resume/Restart in mapAsync operators 
([#3110](https://github.com/apache/pekko/issues/3110), 
[PR3124](https://github.com/apache/pekko/pull/3124), 
[PR3180](https://github.com/apache/pekko/pull/3180), 
[PR3184](https://github.com/apache/pekko/pull/3184), 
[PR3185](https://github.com/apache/pekko/pull/3185))
+* Add an opt-in GraphStage based TLS engine (the actor based implementation 
remains the default) ([PR2878](https://github.com/apache/pekko/pull/2878))
 
-* Java 17 is the new minimum
-* Scala 2.12 support dropped
-* A lot of deprecated code removed
-* A lot of pekko.util classes for Scala version compatibility have been removed
-* Big change for all Java DSL users due to the removal of 
`pekko.japi.Function` (and related classes) to use 
`pekko.japi.function.Function` instead (lambdas should recompile ok but if you 
declared variables or functions explicitly, then you may need to change your 
imports)
-* New pekko-serialization-jackson3. Users who are happy with the 
pekko-serialization-jackson, which uses Jackson 2, can stick with that
-* Changed the pekko-serialization-jackson lz4-java dependency to 
`at.yawk.lz4:lz4-java`, a fork that has important bugfixes
+### Changes
 
-### Upgrade notes
+* Make `SubFlow` and `SubSource` final classes and switch the type parameter 
order of `UnfoldResourceSource` and `UnfoldResourceSourceAsync` 
([PR615](https://github.com/apache/pekko/pull/615), 
[PR616](https://github.com/apache/pekko/pull/616), 
[PR619](https://github.com/apache/pekko/pull/619))
+* Remove the unnecessary empty parameter list from `watchTermination` 
([#2376](https://github.com/apache/pekko/issues/2376), 
[PR2378](https://github.com/apache/pekko/pull/2378))
+* Change `Futures#find` and other `Futures` methods to return Java 
`CompletionStage` ([#2008](https://github.com/apache/pekko/issues/2008), 
[PR2009](https://github.com/apache/pekko/pull/2009))
+* Stream Java DSL now uses `pekko.japi.function` types throughout 
([#2118](https://github.com/apache/pekko/issues/2118), 
[PR2143](https://github.com/apache/pekko/pull/2143))
+* Fix the Java DSL `SourceWithContext`/`FlowWithContext` shape to use 
`pekko.japi.Pair` ([#2510](https://github.com/apache/pekko/issues/2510), 
[PR3388](https://github.com/apache/pekko/pull/3388))
+* Replace `scala.Tuple2` with `pekko.japi.Pair` in 
`FSMTransitionHandlerBuilder` 
([PR3378](https://github.com/apache/pekko/pull/3378))
+* Replace `immutable.Traversable` in the public io and stream APIs 
([PR3467](https://github.com/apache/pekko/pull/3467), 
[PR3468](https://github.com/apache/pekko/pull/3468))
+* Remove `ExecutorServiceFactoryProvider` from `ThreadPoolConfig` 
([#2171](https://github.com/apache/pekko/issues/2171), 
[PR2175](https://github.com/apache/pekko/pull/2175))
+* Replace CountMinSketch with FastFrequencySketch in Artery compression 
([PR3023](https://github.com/apache/pekko/pull/3023))
+* Replace the actor based fanout publisher runtime (`Sink.asPublisher(fanout = 
true)`) with a GraphStage bridge 
([PR2874](https://github.com/apache/pekko/pull/2874))
+* Remove the deprecated annotation from `recoverWith` and undeprecate the 
`getFirst`/`getFirstAttribute` methods 
([PR2119](https://github.com/apache/pekko/pull/2119), 
[PR3404](https://github.com/apache/pekko/pull/3404))
+* Mark public sealed traits and abstract classes with `@DoNotInherit` 
([#1270](https://github.com/apache/pekko/issues/1270), 
[PR3386](https://github.com/apache/pekko/pull/3386))
+* Remove `@ApiMayChange` from APIs that have proven stable, including the log 
markers, `RotatingKeysSSLEngineProvider`, `ExternalShardAllocation`, 
`RetryFlow`, the `MaterializerState` API and the typed persistence query APIs 
([PR3607](https://github.com/apache/pekko/pull/3607), 
[PR3636](https://github.com/apache/pekko/pull/3636), 
[PR3656](https://github.com/apache/pekko/pull/3656))
+* Remove the Akka 2.6.4 rolling-migration manifests from 
ClusterMessageSerializer ([PR3516](https://github.com/apache/pekko/pull/3516))
+* ClusterShardingSettings: remove backward-compat passivation code 
([PR3026](https://github.com/apache/pekko/pull/3026))
+* Remove the `ssl-config` dependency 
([#2125](https://github.com/apache/pekko/issues/2125), 
[PR2127](https://github.com/apache/pekko/pull/2127), 
[PR2359](https://github.com/apache/pekko/pull/2359))
+* Remove usage of `SecurityManager` 
([#1970](https://github.com/apache/pekko/issues/1970), 
[PR2106](https://github.com/apache/pekko/pull/2106))
+* Use the better ByteBuffer cleaner available in Java 9+ 
([PR2020](https://github.com/apache/pekko/pull/2020), 
[PR2031](https://github.com/apache/pekko/pull/2031))
+* Code modernisation to use Java 17 language features and APIs (pattern 
matching instanceof, switch expressions, records, sealed types, collection 
factories, lambdas instead of anonymous inner classes) 
([#2083](https://github.com/apache/pekko/issues/2083), 
[#2201](https://github.com/apache/pekko/issues/2201), 
[PR2088](https://github.com/apache/pekko/pull/2088), 
[PR3188](https://github.com/apache/pekko/pull/3188), 
[PR3190](https://github.com/apache/pekko/pull/3190), [PR3191](https://githu 
[...]
+* Code modernisation for Scala 2.13 and Scala 3, using the standard 
`scala.jdk` converters instead of compat libraries 
([#2126](https://github.com/apache/pekko/issues/2126), 
[PR2205](https://github.com/apache/pekko/pull/2205), 
[PR2206](https://github.com/apache/pekko/pull/2206), 
[PR2236](https://github.com/apache/pekko/pull/2236), 
[PR3539](https://github.com/apache/pekko/pull/3539))
+* Use `-Yfuture-lazy-vals` for Scala 3 builds 
([PR3059](https://github.com/apache/pekko/pull/3059))
+* Fix many compiler, Scaladoc and Javadoc warnings 
([PR3283](https://github.com/apache/pekko/pull/3283), 
[PR3284](https://github.com/apache/pekko/pull/3284), 
[PR3285](https://github.com/apache/pekko/pull/3285), 
[PR3297](https://github.com/apache/pekko/pull/3297), 
[PR3330](https://github.com/apache/pekko/pull/3330))
+* Regenerated the protobuf source code using protoc 4.36 
([PR2036](https://github.com/apache/pekko/pull/2036), 
[PR2335](https://github.com/apache/pekko/pull/2335), 
[PR3514](https://github.com/apache/pekko/pull/3514))
+* Validate legal files in packaged jars 
([PR3328](https://github.com/apache/pekko/pull/3328))
+* Many documentation improvements, including a list of configuration changes 
in the migration guide, docs for the jackson3 module, the JUnit Jupiter test 
kit, custom Durable State store plugins, migrating off the deprecated 
`Source.queue` overloads and stream operator reference pages for previously 
undocumented operators ([PR2391](https://github.com/apache/pekko/pull/2391), 
[PR2468](https://github.com/apache/pekko/pull/2468), 
[PR3274](https://github.com/apache/pekko/pull/3274), [PR3513]( [...]
+
+### Performance
+
+* SIMD within a register (SWAR) and VarHandle based ByteString search 
(`indexOf`, `lastIndexOf`, `indexOfSlice`, `contains`) 
([#1264](https://github.com/apache/pekko/issues/1264), 
[#2150](https://github.com/apache/pekko/issues/2150), 
[PR2148](https://github.com/apache/pekko/pull/2148), 
[PR2306](https://github.com/apache/pekko/pull/2306), 
[PR2309](https://github.com/apache/pekko/pull/2309), 
[PR2838](https://github.com/apache/pekko/pull/2838), 
[PR2839](https://github.com/apache/pekko/pull/ [...]
+* Other ByteString improvements: faster equality, concatenation, slicing, 
fragment lookup, `ByteStringBuilder.result` and multi-byte reads 
([PR2847](https://github.com/apache/pekko/pull/2847), 
[PR2924](https://github.com/apache/pekko/pull/2924), 
[PR3427](https://github.com/apache/pekko/pull/3427), 
[PR3428](https://github.com/apache/pekko/pull/3428), 
[PR3463](https://github.com/apache/pekko/pull/3463), 
[PR3471](https://github.com/apache/pekko/pull/3471), 
[PR3526](https://github.com/apache [...]
+* Faster `UnsynchronizedByteArrayInputStream` usage 
([PR2300](https://github.com/apache/pekko/pull/2300), 
[PR3541](https://github.com/apache/pekko/pull/3541))
+* Batch elements across internal async stream boundaries 
([PR3288](https://github.com/apache/pekko/pull/3288), 
[PR3296](https://github.com/apache/pekko/pull/3296), 
[#3459](https://github.com/apache/pekko/issues/3459), 
[PR3461](https://github.com/apache/pekko/pull/3461))
+* Optimize `Source.from` iterable, `Source.future`, `Source.futureSource` and 
`Source.apply` for Seq ([PR2556](https://github.com/apache/pekko/pull/2556), 
[PR2560](https://github.com/apache/pekko/pull/2560), 
[PR2562](https://github.com/apache/pekko/pull/2562))
+* Avoid substream materialization for value-presented sources in FlattenMerge 
and concat ([PR2977](https://github.com/apache/pekko/pull/2977), 
[PR2978](https://github.com/apache/pekko/pull/2978))
+* GraphInterpreter hot path optimizations 
([PR2986](https://github.com/apache/pekko/pull/2986), 
[PR3119](https://github.com/apache/pekko/pull/3119), 
[PR3373](https://github.com/apache/pekko/pull/3373))
+* Stream materializer wiring and stage actor optimizations 
([PR3035](https://github.com/apache/pekko/pull/3035), 
[PR3062](https://github.com/apache/pekko/pull/3062), 
[PR3063](https://github.com/apache/pekko/pull/3063))
+* Optimize `Source.actorRef` with a direct-push fast path 
([PR3091](https://github.com/apache/pekko/pull/3091))
+* Avoid Holder allocation in ordered mapAsync for already-completed futures 
([PR3018](https://github.com/apache/pekko/pull/3018))
+* Use an ArrayList in BroadcastHub 
([PR2262](https://github.com/apache/pekko/pull/2262))
+* Reduce receive-timeout state allocations and avoid type pollution 
([PR3332](https://github.com/apache/pekko/pull/3332), 
[PR3334](https://github.com/apache/pekko/pull/3334))
+* Validate actor path elements without `String.charAt` 
([PR3542](https://github.com/apache/pekko/pull/3542))
+
+### Removed
+
+Much of the code that was deprecated in Pekko 1.x (and in Akka before that) 
has been removed. At a high level:
+
+* Typed Actors (the classic `TypedActor` API, not Pekko Typed) 
([#571](https://github.com/apache/pekko/issues/571), 
[PR1969](https://github.com/apache/pekko/pull/1969))
+* `ActorMaterializer` class and deprecated materializer, 
`ActorMaterializerSettings`, `IOSettings` and `StreamRefSettings` factory 
methods ([PR2011](https://github.com/apache/pekko/pull/2011), 
[PR2137](https://github.com/apache/pekko/pull/2137), 
[PR3293](https://github.com/apache/pekko/pull/3293))
+* Deprecated stream operators and methods, including the Future based 
operators, stream converters, `OverflowStrategy.dropNew`, 
`SubstreamCancelStrategy`, the old `splitWhen`/`splitAfter` overloads, 
`GraphStage.onDownstreamFinish()` and the stream testkit `probe` methods 
([PR1958](https://github.com/apache/pekko/pull/1958), 
[PR1996](https://github.com/apache/pekko/pull/1996), 
[PR2006](https://github.com/apache/pekko/pull/2006), 
[PR2012](https://github.com/apache/pekko/pull/2012), [PR2017 [...]
+* Deprecated actor, scheduler, testkit, remote, cluster, cluster-sharding 
(including old backoff classes and settings), distributed-data, persistence and 
DNS code ([PR1945](https://github.com/apache/pekko/pull/1945), 
[PR1959](https://github.com/apache/pekko/pull/1959), 
[PR1965](https://github.com/apache/pekko/pull/1965), 
[PR1966](https://github.com/apache/pekko/pull/1966), 
[PR1969](https://github.com/apache/pekko/pull/1969), 
[PR1981](https://github.com/apache/pekko/pull/1981), [PR1983](h [...]
+* `pekko.japi.Function` and related classes, `FI`, `JAPI` and 
`pekko.japi.Option` ([PR2007](https://github.com/apache/pekko/pull/2007), 
[PR2078](https://github.com/apache/pekko/pull/2078), 
[PR2079](https://github.com/apache/pekko/pull/2079), 
[PR2193](https://github.com/apache/pekko/pull/2193))
+* Scala version compatibility classes in `pekko.util` (such as `ccompat`, 
`FutureConverters`, `OptionConverters`, `ExecutionContexts.parasitic`) as Pekko 
now uses the Scala 2.13 standard library equivalents 
([PR2207](https://github.com/apache/pekko/pull/2207), 
[PR2208](https://github.com/apache/pekko/pull/2208), 
[PR2212](https://github.com/apache/pekko/pull/2212), 
[PR2234](https://github.com/apache/pekko/pull/2234), 
[PR2582](https://github.com/apache/pekko/pull/2582))
+* Internal and unused code such as `ReentrantGuard`, 
`AbruptIOTerminationException`, `ActorProcessor` and the classic remoting 
`disassociate` methods ([#2160](https://github.com/apache/pekko/issues/2160), 
[PR2065](https://github.com/apache/pekko/pull/2065), 
[PR2072](https://github.com/apache/pekko/pull/2072), 
[PR2074](https://github.com/apache/pekko/pull/2074), 
[PR2161](https://github.com/apache/pekko/pull/2161), 
[PR3027](https://github.com/apache/pekko/pull/3027))
+* The `ssl-config` configuration sections 
([PR2359](https://github.com/apache/pekko/pull/2359))
+* Support for removing Cluster Sharding coordinator data stored by Akka 2.3.x 
from `RemoveInternalClusterShardingData` 
([PR3608](https://github.com/apache/pekko/pull/3608))
+
+### Deprecations
+
+Some additional APIs have been deprecated and will be removed in a future 
release.
+
+* `org.apache.pekko.dispatch.Futures` 
([#1417](https://github.com/apache/pekko/issues/1417), 
[PR3377](https://github.com/apache/pekko/pull/3377))
+* `Patterns.timeout` ([PR2050](https://github.com/apache/pekko/pull/2050))
+* `Source.future` in the Java DSL 
([PR2593](https://github.com/apache/pekko/pull/2593))
+* `BalancingDispatcherConfigurator`, which is now also marked as internal API 
([#3384](https://github.com/apache/pekko/issues/3384), 
[PR3391](https://github.com/apache/pekko/pull/3391))
+* The `pekko.persistence.dispatchers` configuration 
([PR2482](https://github.com/apache/pekko/pull/2482))
+
+### Dependency Changes
+
+* Java 17 is the minimum supported version
+* Scala 2.13.18 and 3.3.8
+* netty 4.2.19.Final
+* jackson 2.22.4 (pekko-serialization-jackson) and jackson 3.2.4 
(pekko-serialization-jackson3)
+* aeron 1.53.3 and agrona 2.6.1
+* protobuf-java 4.36.2
+* lightbend/config 1.4.9
+* slf4j 2.0.20
+* lz4-java 1.12.1 (`at.yawk.lz4:lz4-java`)
+* zstd-jni 1.5.7-24 (optional, only needed for zstd compression in the Jackson 
serializers)
+* junit-jupiter 6.1.3
+* The `ssl-config` dependency has been removed
+
+### Known Issues
 
-* Agrona was updated from 1.x to 2.x, which 
[means](https://github.com/aeron-io/agrona/wiki/Change-Log#200-2024-12-17) you 
may have to add `--add-opens java.base/jdk.internal.misc=ALL-UNNAMED` if you 
use the Java Module System and Pekko Remote
+* MergeLatest does not backpressure upstreams and buffers without bound 
([#3592](https://github.com/apache/pekko/issues/3592)).


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

Reply via email to