apache / pekko

Build highly concurrent, distributed, and resilient message-driven applications using Java/Scala
https://pekko.apache.org/
Apache License 2.0
1.13k stars 138 forks source link

Investigate forming mixed Pekko and Akka cluster #146

Open pjfanning opened 1 year ago

pjfanning commented 1 year ago
mdedetrich commented 1 year ago

Related to https://github.com/apache/incubator-pekko/issues/108

mdedetrich commented 1 year ago

@pjfanning Shall we remove this from the milestone project? There was discussion at https://lists.apache.org/thread/nr7q9orzffolwo9tj753cvkrohr9875o and we agreed that at least of now, no one really has this requirement.

sergionoviello commented 1 year ago

This would actually be a nice to have for my project as downtime is not acceptable for my use case, I thought other projects would have the same requirement. At the moment I'm planning to deploy Pekko nodes while the Akka nodes are running and switch the traffic to the new Pekko cluster, but this is still causing disruption for about ~1 or 2 mins

pjfanning commented 1 year ago

@sergionoviello I'm afraid that noone else needs this and I am not going to block the RC1 release to wait for this. I think the boat has sailed on this.

mdedetrich commented 1 year ago

When it comes to 1.0.0 release I definitely agree but I guess there is room for a discussion/consensus to include it for a later 1.0.x release. The main concern from my end is that such a migration is non trivial and hence it would really delay the first Pekko release by quite a margin (there is already enough tension on this aspect). Ontop of that we don't even have tests written for such a feature and our existing cluster tests had to be disabled because we don't have dedicated hardware yet.

pjfanning commented 1 year ago

@mdedetrich if you see Johannes' answers on https://github.com/apache/incubator-pekko/issues/139, you'll see that we do have cluster tests running but not the multi node variant - so we do have reasonable coverage but it could be better.

mdedetrich commented 1 year ago

@mdedetrich if you see Johannes' answers on #139, you'll see that we do have cluster tests running but not the multi node variant - so we do have reasonable coverage but it could be better.

Multi node was what I was referring to. At least to me if we are going to release such a feature it makes sense to be really sure that it works (people are after all going to be using it to do production migrations).

pjfanning commented 1 year ago

I honestly doubt whether this is going to be done. Most users will happily have some down time to switch from Akka to Pekko - after testing out the Pekko cluster first. Other users will be able to run an independent Akka cluster and Pekko cluster simultaneously and control which work happens on each cluster, gradually switching more work to the Pekko cluster before decommissioning the Akka cluster.

The cost-benefit on this really comes out as too much cost and too little benefit.

mdedetrich commented 1 year ago

The cost-benefit on this really comes out as too much cost and too little benefit.

Well yes this is the crux, if its really critical for enough people then personally I would hesitate to kill off the idea but someone/some people definitely needs to own it in creating a concrete proposal/implementation as well as testing.

mdedetrich commented 8 months ago

After attending Scala Matters, I realized the case of needing to do a rolling upgrade is more common than what the current Pekko maintainers assume.

I know that @He-Pin wanted to either work on this himself or find another person but I for now I will assign this to myself since if we are going to do this (highly likely) we need to make sure that its out before Pekko 1.1.0 is out since there is going to be bridging from 1.0.x to 1.1.x

zhenyanghua commented 8 months ago

Great news! Is there a timeline for this milestone?

pjfanning commented 8 months ago

@zhenyanghua the changes themselves are pretty small. The biggest issue is testing them with mixed clusters. If people are willing to help out with this testing, that would be a great help.