I was trying to use remoting between different akka versions. I have an application running akka 2.2.1 on scala 2.10.2 and an application running akka 2.0.5 on scala 2.9.2. The second app uses a library which is not available for scala 2.10.2, so I cannot simply update the app, neither downgrade the other one. I get a message error saying that the message was not delivered.
To test it, I created a dummy 2.2.1 akka application sending a String to a 2.0.5 akka actor which prints it to the console. To avoid the missing sender, the 2.2.1 app sends a message to an actor which routes it to an actor in the other version.
Are there any known compatibility issues between the two versions?
I already took care of conf files, changing netty and stuff, so it should only be a matter of versions. The dummy apps works fine if they have the same akka versions.
I can provide the error logs if you need them.
Akka has two ways of using remoting: Lookup : used to look up an actor on a remote node with actorSelection(path) Creation : used to create an actor on a remote node with actorOf(Props(...), actorName)
In Akka, actors are guaranteed to be run in a single-threaded illusion, which means that the Akka framework takes care of threading issues while allowing us to focus on the behavior that needs to be implemented. Actors may only communicate with each other and the outside world by through messages.
The Akka HTTP server backend is the default in Play. You can also use the Netty backend if you choose.
Akka Cluster provides a fault-tolerant decentralized peer-to-peer based Cluster Membership Service with no single point of failure or single point of bottleneck. It does this using gossip protocols and an automatic failure detector.
The remote communication protocol of Akka is not (yet) compatible between versions, meaning that what you observe is intentional. We need to wait at least one more major release before we can start stabilizing and then freeze the protocol to allow future interoperability. We recommend decoupling components using REST APIs for now and using remoting only where lockstep updates are possible.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With