I have a somewhat similar issue I am dealing with.

Our volume requirements aren't enormous, so I have separated processing of 
commands into two states

1. Save the command in an external database in a "Pending" status
2. Process the command.
3. Update the command to be completed when it is done.

When doing an upgrade, I can tell the active cluster to "stop processing 
commands".  This will allow me to accept queries and new commands without 
processing them.  

At the same time, I can activate the new cluster, and initially it will not 
be processing commands either.

Once all processing has stopped on the old cluster, I can signal the new 
cluster to start processing commands and shift traffic entirely to the new 
cluster (however you manage traffic, vuland, haproxy, nginx etc).

Command processors read off the queue to do their work.

This allows us to have a zero down-time cutover solution, while affecting 
only performance of processing commands.

This may not work in your use case, not sure if it is valuable.  

On Tuesday, April 12, 2016 at 5:46:03 AM UTC-4, Chelios wrote:
>
> Hey Guys,
>
> Suppose I have an Akka application which always keeps the state of all the 
> actors in memory and commands are flowing through which are modifying the 
> state of the Actors constantly and I want to upgrade my application code to 
> a newer version. How do I do that without any downtime ? 
>
> The problem I see if I fire up another machine (Machine_B) with newer 
> version of the application, I will have to wait for the all the state of 
> all the Actors to be initialized which might take time and while the new 
> application is load, older Machine_A's application would've already 
> processed more commands which might have modified the state of the Actors. 
> What are the best practices to solve this problem ? 
>
>
>

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to