Vaadin flow, Typescript, and Scalability?

Hello all,

If we were to deploy Vaadin latest with the stateless typescript UI, would it support handling the adding and removing of backend nodes without having to synchronize session state somewhere?

We are trying to decide on technology for a possible upcoming project, and are wanting to implement load balancing and automatic scale up and down as needed for the java nodes.

We think Vaadin would be a good solution to the possible project, but having automatic scale up and scale down behind a load balancer is a definite requirement.

-Mike@NewsRx

Hi, glad to hear that you are interested in Vaadin TypeScript UI. With pure TypeScript UIs, Vaadin doesn’t store any UI state in the session, only the user authentication info.

So if your application requires user authentication, handling the session replication should be the same as other frameworks.

If your application doesn’t require user authentication at all, then you don’t need to synchronize session state.

Thanks for the reply.

(Cross posting from Gitter here)

I guess an example setup would probably help in understanding what the session replication would look like for auth, etc.

To prevent k8s/other complexity in such an example setup, I would like to see a simplified multi-node model setup where:

Only Docker is used.

A simple load balancer with nginx (http) or apache (ajp) is setup as a front-end to point to multiple backends, with automatic failover.

Implement the simplest possible session replication as part of the setup. Stored in RAM? SQL?

Two or more backends deployed via Docker manually. So that the person testing the setup can easily destroy and add nodes on demand to verify.

To keep things very simple, presume any DB, session store, or other long term persistence is not part of the cluster.

Such a guideline to a simple multi-node setup, in theory, should allow a team testing their app design move to a more production oriented environments such as k8s, etc, with confidence.