Migration Guides · Apache Pekko Documentation Apache Pekko Documentation Migration Guides  Type to start searching apache/pekko Apache Pekko Documentation apache/pekko ScalaJava Security Announcements Receiving Security Advisories Reporting Vulnerabilities Security Related Documentation Release Notes 1.0.3 1.0.3-M1 1.0.2 1.0.1 1.0.0 Getting Started Guide Introduction to Apache Pekko Why modern systems need a new programming model How the Actor Model Meets the Needs of Modern, Distributed Systems Overview of Apache Pekko libraries and modules Introduction to the Example Part 1: Actor Architecture Part 2: Creating the First Actor Part 3: Working with Device Actors Part 4: Working with Device Groups Part 5: Querying Device Groups General Concepts Terminology, Concepts Actor Systems What is an Actor? Supervision and Monitoring Actor References, Paths and Addresses Location Transparency Apache Pekko and the Java Memory Model Message Delivery Reliability Configuration Default configuration Actors Introduction to Actors Actor lifecycle Interaction Patterns Handling responses in Scala 3 Fault Tolerance Actor discovery Routers Stash Behaviors as finite state machines Coordinated Shutdown Dispatchers Mailboxes Testing Coexistence Style guide Learning Pekko Typed from Classic Cluster Cluster Usage Cluster Specification Cluster Membership Service Phi Accrual Failure Detector Distributed Data Cluster Singleton Cluster Sharding Cluster Sharding concepts Sharded Daemon Process Multi-DC Cluster Distributed Publish Subscribe in Cluster Reliable delivery Serialization Serialization with Jackson Multi JVM Testing Multi Node Testing Artery Remoting Classic Remoting (Deprecated) Split Brain Resolver Coordination Choosing Pekko Cluster Persistence (Event Sourcing) Event Sourcing Replicated Event Sourcing CQRS Style Guide Snapshotting Testing EventSourced behaviors as finite state machines Schema Evolution for Event Sourced Actors Apache Persistence Query Persistence Query for LevelDB Persistence Plugins Persistence - Building a storage backend Replicated Event Sourcing Examples Persistence (Durable State) Durable State Style Guide CQRS Persistence Query Streams Module info Introduction Streams Quickstart Guide Design Principles behind Apache Pekko Streams Basics and working with Flows Working with Graphs Modularity, Composition and Hierarchy Buffers and working with rate Context Propagation Dynamic stream handling Custom stream processing Futures interop Actors interop Reactive Streams Interop Error Handling in Streams Working with streaming IO StreamRefs - Reactive Streams over the network Pipelining and Parallelism Testing streams Substreams Streams Cookbook Configuration Operators Discovery Module info How it works Discovery Method: DNS Discovery Method: Configuration Discovery Method: Aggregate multiple discovery methods Migrating from Pekko Management Discovery (before 1.0.0) Utilities Logging Circuit Breaker Futures patterns Extending Apache Pekko Other Apache Pekko modules Pekko HTTP Pekko gRPC Pekko Connectors Pekko Kafka Connector Pekko Projections Cassandra Plugin for Pekko Persistence JDBC Plugin for Pekko Persistence R2DBC Plugin for Pekko Persistence Apache Pekko Management Package, Deploy and Run Packaging Operating a Cluster Deploying Rolling Updates Project Information Binary Compatibility Rules Scala 3 support Downstream upgrade strategy Modules marked “May Change” IDE Tips Immutability using Lombok Apache Pekko in OSGi Migration Guides Rolling Updates and Versions Issue Tracking Licenses License Report Frequently Asked Questions Books and Videos Example projects Project Pekko Classic Classic Actors Classic Clustering Classic Networking Classic Utilities Table of contents Migration Guides Migration to Apache Pekko link Apache Software Foundation link License link Security link Privacy link Events link Donate link Thanks label_outline 1.0.1 Table of contents Migration Guides Migration to Apache Pekko Migration Guides Apache Pekko is based on the latest version of Akka in the v2.6.x series. If migrating from an earlier version of Akka, please migrate to Akka 2.6 before migrating to Pekko. Migration to Apache Pekko These migration notes are designed for users migrating from Akka 2.6 to Pekko 1.0 and assume a basic level of Akka experience. Please feel free to submit an issue or a patch if you feel like the notes can be improved. for Pekko jar dependencies, the groupId is “org.apache.pekko” instead of “com.typesafe.akka” the jar names start with “pekko” instead of “akka” - e.g. pekko-actor_2.13.jar instead of akka-actor_2.13.jar Alpakka equivalent is “pekko-connectors” - e.g. pekko-connectors-kafka_2.13.jar instead of alpakka-kafka_2.13.jar Pekko packages start with “org.apache.pekko” instead of “akka” - e.g. import org.apache.pekko.actor instead of import akka.actor Where class names have “Akka” in the name, the Pekko ones have “Pekko” - e.g. PekkoException instead of AkkaException Config names use “pekko” prefix instead of “akka”, e.g. pekko.actor.provider instead of akka.actor.provider The Pekko node URLs use different URL schemes. pekko:// instead of akka:// pekko.tcp:// instead of akka.tcp:// pekko.ssl.tcp:// instead of akka.ssl.tcp:// We have changed the default ports used by the pekko-remote module. With Classic Remoting, Akka defaults to 2552, while Pekko defaults to 7355. With Artery Remoting, Akka defaults to 25520, while Pekko defaults to 17355. Cluster Management users should read the pekko-management migration guide Dependency Changes The Scala 2.13/Scala 3 versions of Pekko no longer include scala-java8-compat as a dependency. This means if you were relying on scala-java8-compat along with Scala 2.12/Scala 3 as a transitive dependency that it’s recommended to migrate to using scala.jdk instead. If this is not possible/desired then you can add scala-java8-compat as dependency yourself. In addition to the previous point, for Scala 2.12 scala-java8-compat has been updated to 1.0.2. If you are using an older binary incompatible version of scala-java8-compat then it is recommended to update to 1.0.2. For Scala 2.12 and 2.13 ssl-config has been updated to 0.6.1 in order to bring in bug/security fixes. Note that ssl-config 0.6.1 is binary and source compatible with 0.4.1. Pekko TestKit users will find that scalatest 3.2 is the default dependency version. Users with old Akka TestKit based tests may need to migrate some of their test code. The scalatest 3.2 release notes have a detailed description of the changes needed. Jackson is upgraded to 2.14.3. reactivestreams is upgraded to 1.0.4. pekko-protobuf-v3 is based on protobuf-java 3.16.3. Miscellaneous Notes Data persisted with “akka-persistence” is usable with “pekko-persistence” and vice versa (Persistence). There is one issue that is fixed in v1.0.3 (related to persisted snapshots - for which there is a workaround). Early releases of Apache Pekko could not be used to allow Akka and Pekko nodes to combine to form a cluster. Newer releases have experimental support that we would appreciate users to try out in test environments (wiki page). Edit this page 1.0.1 Previous Apache Pekko in OSGi Next Rolling Updates and Versions Copyright © 2011-2022 Lightbend, Inc. Apache Pekko, Pekko, and its feather logo are trademarks of The Apache Software Foundation.