GitHub user regiskuckaertz added a comment to the discussion: Strategy for 
gradual Akka β†’ Pekko migration with shared library and rollback capability?

hi @travissarles I just went through this myself with ~20 services in a 
monorepo with loads of shared sbt projects between them as well as roughly the 
same number of internal libraries hosted in another repo. the method i used was 
what my sensei would call "brutal duplication for total domination" 😀😁🐲

otherwise known as the bottom up approach. in a nutshell:
- start with the internal libraries. we knew that both would not be on the same 
classpath, so we just duplicated each library that had akka dependencies, 
updated the import statements, updated any akka-specific config, and published 
the artifacts under a different name. therefore both versions had the same 
package structure.
- for the shared sbt projects, also duplicated, replaced the akka dependencies 
as well as internal lib dependencies, updated the import statements and 
akka-specific config

all the leaves and shared branches of the dependency graph being duplicated, we 
were in a position to migrate each application one at a timeβ€”no application had 
both akka and pekko dependencies. yes, it meant for a period of time we were 
careful in PR reviews to make sure changes were replicated in duplicate 
projects, but the migration took less than a week. since we tag our docker 
images with the commit sha, rollback would have been easy but never happened.

we experienced two minor difficulties:
- running hybrid akka/pekko clusters: did not work initially but the team here 
was super helpful with the investigation, even fixed some code in the cluster 
formation protocol (this hybrid feature is unique to pekko). in the process i 
even went into what my sensei would call "complete yolo mode of the end of the 
universe" and moved from classic remote, which we were still using, to artery.
- for better or worse, we use swagger annotations in our http apis. we had to 
update all of them to the v3 annotations. luckily, this an agent can easily do 
today with minimum oversight.

it's been four months since, no issues reported

GitHub link: 
https://github.com/apache/pekko/discussions/2592#discussioncomment-15289440

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: 
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to