Scalability

Vaadin is a component-based UI framework for building web apps in Java. Your UI code works securely on the server, right next to your business logic that you can access with native Java API.

CPU

Processing power

Since Vaadin is a UI layer framework, it does not affect your back-end layer processing power. With the exception of the Application Server using CPU to create the HTTP Session, Vaadin uses processing power only marginally.

Lock contention

Vaadin does not use any global locking that might cause concurrency overhead with multiple threads.

Memory

Session size

Vaadin stores the state of the user interface on the server-side in the HTTP session. The size of the session fully depends on the amount of state (e.g. views) and business data that is stored in the application, ranging from 50kb to 1000kb per concurrent user, depending on the amount of business data that is stored in the session. Memory use is rarely a bottleneck for a properly designed application. See below for tips on optimizing the session size

Back-end layer

Vaadin does not add overhead for the backend layer. The key is to not reference more business data in the session than is required. E.g. fetching a large data set into a List instead of using a lazy loading data provider will increase your memory consumption. Vaadin is agnostic about how much back-end data is stored in the session.

I/O

Database access and file I/O The database layer is most typically the first pain point when writing scalable applications, especially when using a centralized SQL database. A benefit of the Vaadin way of keeping the application state in the session is actually that it helps to cache backend data that would otherwise need to be fetched from the database every time.

Network bandwidth

Vaadin uses HTTP and XHR as the default communication mechanism. Vaadin’s communication stack is optimized to only send the differences of state over the network from both client to server and server to client. Multiple state changes in the UI are combined into batches to avoid typical "AJAX chattiness". For applications that are used for a longer period of time, this approach consumes less bandwidth than traditional web applications.

Middleware

In general, middleware, such as MQ, JPA and ESBs, adds complexity to your technology stack and limits the throughput of your application. Vaadin is agnostic about your technology stack and does not limit scalability.

Scalability

Vaadin is a component-based UI framework for building web apps in Java. Your UI code works securely on the server, right next to your business logic that you can access with native Java API.

CPU

Processing power

Since Vaadin is a UI layer framework, it does not affect your back-end layer processing power. With the exception of the Application Server using CPU to create the HTTP Session, Vaadin uses processing power only marginally.

Lock contention

Vaadin does not use any global locking that might cause concurrency overhead with multiple threads.

Memory

Session size

Vaadin stores the state of the user interface on the server-side in the HTTP session. The size of the session fully depends on the amount of state (e.g. views) and business data that is stored in the application, ranging from 50kb to 1000kb per concurrent user, depending on the amount of business data that is stored in the session. Memory use is rarely a bottleneck for a properly designed application. See below for tips on optimizing the session size

Back-end layer

Vaadin does not add overhead for the backend layer. The key is to not reference more business data in the session than is required. E.g. fetching a large data set into a List instead of using a lazy loading data provider will increase your memory consumption. Vaadin is agnostic about how much back-end data is stored in the session.

I/O

Database access and file I/O The database layer is most typically the first pain point when writing scalable applications, especially when using a centralized SQL database. A benefit of the Vaadin way of keeping the application state in the session is actually that it helps to cache backend data that would otherwise need to be fetched from the database every time.

Network bandwidth

Vaadin uses HTTP and XHR as the default communication mechanism. Vaadin’s communication stack is optimized to only send the differences of state over the network from both client to server and server to client. Multiple state changes in the UI are combined into batches to avoid typical "AJAX chattiness". For applications that are used for a longer period of time, this approach consumes less bandwidth than traditional web applications.

Middleware

In general, middleware, such as MQ, JPA and ESBs, adds complexity to your technology stack and limits the throughput of your application. Vaadin is agnostic about your technology stack and does not limit scalability.