How binary compatible is distributed akka

ぐ巨炮叔叔 提交于 2019-12-08 08:19:18

问题


While akka has documentation regarding binary compatibility for drop in jar replacement, I can't find anything regarding protocol binary compatibility.

At the basic level, the actor API is a mailbox of messages. Therefore as long as the messages stay binary compatible there's every possible that messages can be sent to other systems running different (jar-incompatible) versions of akka.

So given:

  • 2 applications with a fixed message set
  • No Typed actors (only using actor ! message and actor ? message)
  • "Application 1" using akka 2.3.9

What's the earliest version of akka "Application 2" could use?

Other items I'd like confirmed:

  • Akka clustering protocol is irrelevant here - each application can have their own cluster and communicate between the clusters using TCP remoting
  • Scala binary compatibility is irrellevant as well - the systems are communicating via a TCP protocol with a pre-compiled set of messages (quite possibly specified in Java for assurance/paranoia)

As a start, the 2.0 series has the same remoting configuration, but is there any reason that 1.3 couldn't be made to work?


回答1:


Up to this point we have not put measures in place that would ensure protocol compatibility between Akka versions—this also means minor version updates. We have not, however, introduced gratuitous changes and on the Akka protocol level with pure Remoting chances should be good that it works across versions since 2.2.0. Before that there were changes to the remoting protocol handshake that will likely break compatibility, and Akka 1.x was a completely different matter entirely.

We know that this answer is not satisfying and we will work on this by fully specifying the remote protocol and implementing cross-version tests, but we have not yet had the resources to tackle this large task.



来源:https://stackoverflow.com/questions/29501403/how-binary-compatible-is-distributed-akka

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!