Server side
Well, it would be much easier to make your service standstill and transfer the session to the client side - you will not need to do sessions at all (this approach has its drawbacks, though).
Client side
In this case, you will need round-robin load balancing (the easiest) with healthchecks. And then you can update the servers easily in turn.
Whether you need to restart the service or not during the clientide update update (which is a simple exchange of static assets) depends on the web server that you use for the server.
Database
- . - - . , . , . ? :)
- master .
, - .
/ , (, localStorage).
deltas, (- event sourcing).
( ).
, .
, , . UX.
. .
.