Release Notes (1.2.x)

Apache Pekko 1.2.x releases support Java 8 and above.

1.2.0

Pekko 1.2.0 has some new features, performance updates and dependency upgrades. See GitHub Milestone for 1.2.0-M1, GitHub Milestone for 1.2.0-M2 and GitHub Milestone for 1.2.0 for a fuller list of changes.

Most of the changes appeared in the milestone releases (1.2.0-M1 and 1.2.0-M2) but some additional changes were made for the 1.2.0 release. These extra changes include deprecating some methods that will be removed in a future release.

Bug Fixes

  • Fix a leak in FlatMapPrefix operator (PR1622)
  • Fix a leak in PrefixAndTail operator (PR1623)
  • Fix occasional ordering issue in FlowWithContext#unsafeOptionalDataVia (PR1681)
  • Add the missing EmptySource case to TraversalBuilder (PR1743)
  • Issue forming mixed Akka/Pekko cluster when classic remoting with SSL/TLS is used (PR1857)
  • Join cluster check adjusted to support Akka nodes (PR1866, PR1877)
    • If you are attempting to mix Akka and Pekko nodes in a cluster, it is still recommended to disable the join cluster check but these changes may be enough to get it work (docs).
  • BroadcastHub drops elements due to register/unregister race (PR1841)
  • Fix issue with number deserialization in pekko-cluster-metrics (PR1899)
  • Fix typed persistence stack overflow with many read only commands (PR1919)
  • Allow overriding dispatcher in mapWithResource (PR1949)
  • Fix issue with ByteBuffer cleaner only working with Java 8 (PR2020)

Additions

  • add non-default config that allows InboundQuarantineCheck to ignore ‘harmless’ quarantine events (PR1555)
  • New Sink.none operator (PR1614)
  • Add overridden duration timeout to StreamTestKit (PR1648)
  • Add Identity function to Java DSL (PR1671)
  • Add support for controlling the NettyTransport’s byteBuf allocator type (PR1707)
  • Add Pattern timeout support (PR1424)
  • Add TraversalBuilder.getValuePresentedSource method for further optimization (PR1701)
  • Add flatmapConcat with parallelism support (PR1702)
  • add EventsByTagQuery to JavaDSL PersistenceTestKitReadJournal (PR1763)
  • Implement EventsBySliceQuery in JavaDSL PersistenceTestKitReadJournal (PR1767)
  • Persistence API: add CurrentLastSequenceNumberByPersistenceIdQuery (PR1773)
  • Add emitMulti with Spliterator support (PR1776)
  • Add switchMap stream operator (PR1787)
  • Add invokeWithFeedbackCompletionStage for javadsl (PR1819)
  • Add takeUntil stream operator (PR1820)
  • Add Source#create method (PR1823)
  • Support Jackson Enum Features (PR1845)
  • Add dropRepeated stream operator (PR1868)
  • Add onComplete support for statefulMapConcat operator (PR1870)
  • Add groupedAdjacentBy and GroupedAdjacentByWeighted stream operators (PR1937)
  • Add JournalPersistFailed and JournalPersistRejected signals (PR1961)
  • Make calculateDelay a public method (PR1940)
  • Allow disabling AsyncWriteJournal.Resequencer to improve latency (#2026)
  • Add CompletionStages helper (PR2049)

Changes

  • Make flatMapPrefix javadsl using java.util.List (PR271)
  • Add SchedulerTask which will be notified once cancelled (PR1593)
  • Reduce loops when cleaning queue in BroadcastHub (PR1628)
  • Avoid calling finalizeStage more times than once (PR1650)
  • avoid boxing in zipWithIndex and fix type signature in SubSource#zipWithIndex (PR1669)
  • Avoid forwarding method on ArrayDequeue in stream module (PR1687)
  • Avoid forwarding method on ArrayDequeue in BatchingExecutor (PR1688)
  • Enhance virtual thread support (PR1724)
  • Add LoadMetrics support for virtual thread executor (PR1734)
  • Tweak withAttributes in Flow (PR1658)
  • Handle NormalShutdownReason in MergeHub (PR1741)
  • optimize recoverWith to avoid some materialization (PR1775)
  • Regenerated all the source code for Protobuf using 4.32.0 (PR1795, PR2036)
  • Avoid materialize an empty source in switchMap (PR1804)
  • Fix wrong name attribute for iterate and mapAsyncPartitionUnordered operators (PR1869)
  • Change aggregateWithBoundary operator in javadsl to use Optional (PR1876)
  • TLS v1.3 is now the default (PR1901)
  • Set vector builder to null after stage completed to avoid leak (PR1917)
  • Renamed internal Algorithm class (pekko-serialization-jackson) (PR1932)
  • Deprecate FunctionalInterfaces that are being removed in pekko 2.0.0 (PR2004, PR2075)
  • Disable batch if isVirtualized (PR2046)
  • Deprecate more methods in Futures (PR2048)
  • Remove incorrect deprecation in IOResult (PR2054)
  • Make timeoutCompletionStage accept Java Duration (PR2063)

Dependency Changes

  • netty 4.2.4.Final
  • jackson 2.19.2
  • lightbend/config 1.4.4
  • protobuf-java 4.32.0
  • slfj4 2.0.17
  • jupiter-junit 5.13.3
  • scala 2.12.20, 2.13.16, 3.3.6