Hi, hakkers!
I have a distributed app that uses `akka-persistence` and `akka-sharding`.
For some of my shard coordinators I use `remember entities` feature.
I heard (from Bonér or Kuhn, can't say for sure) that in production it's better to use blue/green deployments.
As I see, the steps are:
1. Deploy and start fresh application, let it form cluster (don't start any ShardRegions yet)
2. Stop ShardRegions that do not use `remember entities` features (e.g. Aggregate Roots).
3. Start these ShardRegions on freshly deployed system
4. Switch external traffic to new system (so that we already can accept external commands).
5. Stop ShardRegions that use `remember entities` features (e.g. Long Running Processes, that react to events from Aggregate Roots).
6. Start these ShardRegions on freshly deployed system (here I need akka sharding to restart entities that were alive on previous system)
7. Shut down old system
So the questions are:
1. Is there any improvements to the deployment process?
2. Wouldn't this scenario corrupt Sharding related or any Akka internal data in journal?
3. How do you handle deployments in production?
Thanks a lot,
Denis.