Automatic rolling update support with remote protocol changes

This is a question/idea regarding the feasibility of some feature to make changing remote protocols easier, in our case it’s often the set of entity commands that evolves (adding, changing, etc.).

We already use the app-version configuration parameter to set the application version, but that doesn’t seem to apply when changing protocols, as new nodes can send newer commands to entities still living in old nodes.

Would there be a way that Akka could enable some automatic support for this kind of deployment (to avoid the two-phase technique)? How about

  • detect that a newer command is sent to an entity that still lives in an old node
  • stash it (and further commands)
  • move the entity to a newer node
  • once recovered, deliver the command