Hi Brendan, I am fully supportive of the migration to Peeko. I also agree with merging the PR directly into master and moving forward with a 3.0.0-SNAPSHOT release.
Personally, this is something I've wanted to do for a long time, but I couldn't have enough bandwidth to take it on myself. So I really appreciate you taking the initiative and pushing this forward. I'm on board with all of the directions you proposed. One quick question is, do you have an estimate on how many commits are expected to be merged into the master? Lastly, though I no longer work in the FaaS or Serverless space, I also still have a deep attachment to this project and plan to stay involved in the community whenever I can. Thanks again for driving this effort. Best, Dominic 2025년 10월 16일 (목) 오후 2:17, Brendan Doyle <[email protected]>님이 작성: > Hello whiskers, > > It's been a while! I'm reaching out today about migrating Openwhisk off of > Akka to Apache Pekko. Following the license change of Akka back in 2022, > the Apache community created a fork to maintain the open source nature of > the Akak framework within the Apache organization. Three years later, the > project is quite successful and stable such that I feel we are ready to > make the cutover. As far as I know, all other Apache projects that were > taking dependency on Akka have already made the switch. > > Why do this now or at all? > > 1. We have been stuck on Akka 2.6 for over 3 years. The core framework of > the project dictates what other versions of transitive dependencies we can > run. Without being on a version of Akka / Pekko that is actively > maintained, we cannot properly patch dependencies to handle critical bug > and security fixes. > 2. Many of the dependencies we rely on are severely outdated due to the > reliance on the last Apache licensed version of Akka. Taking this > opportunity to cutover to Pekko allows us to do major revisions on > dependencies that are long overdue. > 3. By having the project in this healthy state again, it should motivate > people to make small updates as needed surrounding tooling and running the > project that would be an insurmountable change in the current state. > > I have a PR <https://github.com/apache/openwhisk/pull/5551> open that is > near ready for review, which is why I'm sending out this email now to get > attention as soon as possible. I just have three failing unit tests > remaining to resolve. I have already tested the change in running clusters > and all looks good. The PR may look daunting at +400 files, but I promise > after doing a self review this morning only about ~25 files require any > look, mainly the dependency and configuration files. I estimate it will > take approximately twenty minutes of your time to review. The rest of the > files are just import name changes. The PR is clean and only updating > dependencies as necessary. The cutover to new clusters should be quite > transparent apart from the changes under the hood from where we were on > Akka to the latest version of Pekko, which in my wide experience with Akka > should be trivial from where we were on 2.6. > > *Here is the important part. Merging this in will be a breaking change so > far as it requires you to start new Openwhisk clusters through blue / green > deployment. Rolling upgrade of existing clusters will not work. While > Apache Pekko supports rolling restart cutovers, our current state does not > leverage this because we are on Akka GRPC 1.x and Akka Kryo serialization > w/ Kryo4. Pekko is forked off of Akka GRPC 2.x and Akka Kryo serialization > w/ Kryo5. Both of these major upgrades would require new clusters even if > remaining on Akka. Now is a good time to get them out of the way so we do > not have to address this again indefinitely since we'll be on the latest > Pekko GRPC major and *Kryo5* serialization is latest.* > > Now on how do we integrate this into the project. Either we merge my PR > directly to master or we open a v3 branch. With the current velocity of the > project such that for a couple years now the only updates have been > dependency and build updates, my opinion is we just go straight to master > especially with the bug and security fixes included. Additionally, we only > ever had one official release of 2.x which was also a breaking change in > similar capacity. Besides getting eyes on the PR, I'd appreciate responses > on if people are okay with merging the PR directly to master and changing > the version to a 3.0.0-SNAPSHOT? > > Lastly, I would like to take this opportunity to discuss with the community > our status and our use of the project for full transparency. We have been > working for a couple of years on our next generation platform and strategy > for internal usage of FaaS and will be winding down our usage of the > project by 2027. When it is all said and done, this project will have > served us well for nearly a decade. I would like to take a moment to > applaud @style95 and his whole team for what they accomplished with the > scheduler. Without this work, we would not have had the stability to > allocate resources to work on the platform that would come next for us for > the last two years. > > For me, I will still be around personally to give feedback on any project > discussion or help keep things healthy with build and dependency updates > after 2026. Following this change, it should be trivial for us to keep the > Apache project stable for a very long time for the open source and research > community to continue on or expand Openwhisk. > > Thanks, > Brendan Doyle > > Brendan Doyle > Staff Software Engineer, Async Platform > > > >
