> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Persistent CRUD services

> Overview of the Spring CRUD services in Atoti Limits that manage limit structures, limits, and incidents across the Atoti Datastore and external JPA databases

## The Services

We have added Spring services in the format `ILimitsApp<DatabaseType>CrudService` to provide a more unified approach to data management in Atoti Limits.
These services are designed to work with different types of databases and datastores. The primary services are as follows:

<table><thead><tr><th>Service</th><th>Description</th></tr></thead><tbody><tr><td><a href="./services/persistence-services-parent-interface">ILimitsAppCrudService</a></td><td>The parent interface for the following services. It is not directly imported into the application but serves as a means to combine the required functionality for each service.</td></tr><tr><td><a href="./services/persistence-services-sub-interfaces">ILimitsAppDatastoreCrudService</a></td><td>Manages objects that exist in the Atoti Datastore. These objects power the Atoti Limits cube.</td></tr><tr><td><a href="./services/persistence-services-sub-interfaces">ILimitsAppJpaDatabaseCrudService</a></td><td>Manages objects that exist in an external database. Changes to these objects are propagated using JPA.</td></tr><tr><td><a href="./services/persistence-services-sub-interfaces">IPreferredLimitsAppCrudService</a></td><td>The default implementation of <code>ILimitsAppCrudService</code>. It is invoked throughout the application and powers the REST services used by the Atoti Limits UI. It uses a combination of both <code>ILimitsAppDatastoreCrudService</code> and <code>ILimitsAppJpaDatabaseCrudService</code> to manage objects between both an Atoti Datastore and an external database.</td></tr></tbody></table>

In summary, `ILimitsAppCrudService` provides a general contract for persistent CRUD
services in the Limits Application, the `ILimitsAppDatastoreCrudService`
and `ILimitsAppJpaDatabaseCrudService` provide specific implementations for a Datastore and a
JPA Database, respectively. The choice between these two depends on the specific persistence
mechanism your application is using.

For more information on extending these services see [Adding Custom Persistence Services](../dev-extensions/custom-persistence).
