Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Apache Pekko 1.0.3 -M1 will contain contains some experimental changes to make it possible for Pekko nodes to interact with Akka nodes (remote or cluster mode). The changes first appeared in the 1.0.3-M1 release but we would recommend that you use the full release.

Apache Pekko nodes use URLs like `pekko://host:port` while Akka uses `akka://host:port`. Both Akka and Pekko will by default ignore nodes that have the wrong URL scheme. Akka will not likely be changed to accept Pekko URLs but we are changing Pekko so that it can accept Akka URLs.

The changes are in PR765 and PR1112.

Apache Pekko 1.0.3-M1 is a milestone release and is only meant for testing. Do not attempt to use this Pekko release in production. Ideally, users who want to add Pekko nodes to an Akka cluster with the aim of replacing the Akka nodes with Pekko nodes, should try this milestone release Pekko Akka Compatibility support in a test cluster. We would really like to hear from users who do this to tell us how they get on. 

...

To reiterate, you will need to do 3 phases to fully replace your Akka cluster with a Pekko cluster:

  1. join Pekko nodes (that impersonate Akka nodes) to your Akka cluster and then start to remove the Akka nodes
  2. when you have no Akka nodes, start replacing the Pekko nodes with ones that do not impersonate Akka nodes but that still agree to interact with Akka nodes (because some Pekko nodes are still impersonating Akka nodes - ie ones that still have `pekko.remote.protocol-name="akka"`)
  3. when all nodes are using `pekko.remote.protocol-name="pekko"`, then you can replace all the nodes with nodes that no longer accept "pekko" as a protocol name (ie `pekko.remote.accept-protocol-names=["pekko"]`) 

If you have issues in phase 1, you can stop the new Pekko nodes and return to being a cluster with just Akka nodes.

Known Issues

  • If you use Akka-Persistence, the existing Pekko code attempts to change Snapshot data. Unfortunately, the Akka and Pekko Persistence snapshots include a Serializer class name in the persisted data and this class name will either have a package name beginning with akka  or org.apache.pekko. A proposed solution appears in PR1423.