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]
