> Markdown version of [Business Logic](https://vaadin.com/docs/next/building-apps/business-logic). Section index: [llms.txt](https://vaadin.com/docs/next/building-apps/llms.txt)

# Business Logic

In a Vaadin application, views don’t implement business logic themselves. They call *application services*, which carry out business operations, and define the transaction and security boundaries around them. For the reasoning behind this, see [Conceptual Layers](https://vaadin.com/docs/next/building-apps/architecture/layers.md).

Start with [Add a Service](https://vaadin.com/docs/next/building-apps/business-logic/add-service.md), which shows how to design an application service and call it from a view. The [Background Jobs](https://vaadin.com/docs/next/building-apps/business-logic/background-jobs.md) deep dive covers work that runs outside the request of a user, such as long-running operations, scheduled jobs, and follow-up work triggered by events.

To store data, see [Persistence](https://vaadin.com/docs/next/building-apps/forms-data/persistence.md). To protect services from unauthorized calls, see [Protect Services](https://vaadin.com/docs/next/building-apps/security/protect-services.md).

These guides don’t cover caching. To cache the results of service methods, see [Cache Abstraction](https://docs.spring.io/spring-framework/reference/integration/cache.html) in the Spring Framework documentation, and [Caching](https://docs.spring.io/spring-boot/reference/io/caching.html) in the Spring Boot documentation. An in-memory cache exists once per application instance. If you run several instances, each has a cache of its own, as explained in [What This Means for Deployment](https://vaadin.com/docs/next/building-apps/architecture/runtime-model.md#what-this-means-for-deployment).

## <a id="topics"></a>Topics

- [Add a Service](https://vaadin.com/docs/next/building-apps/business-logic/add-service.md): Learn how to add an application service to a Vaadin application.
- [Background Jobs](https://vaadin.com/docs/next/building-apps/business-logic/background-jobs.md): How to handle background jobs.
