The following three services implement the contract defined by ILimitsAppCrudService,
but they focus on more specific components. These are the main services used for persisting data in Atoti Limits:
ILimitsAppDatastoreCrudService
The ILimitsAppDatastoreCrudService is an empty extension of
the ILimitsAppCrudService interface that is specifically designed to work with an Atoti
Datastore.
ILimitsAppJpaDatabaseCrudService
The ILimitsAppJpaDatabaseCrudService is an empty extension of
the ILimitsAppCrudService interface that is specifically designed to work with a
connected JPA Database.
IPreferredLimitsAppCrudService
This is the default implementation of ILimitsAppCrudService. It uses the combination of ILimitsAppDatastoreCrudService and ILimitsAppJpaDatabaseCrudService to
provide a default implementation of the ILimitsAppCrudService interface. This means that
changes made to managed objects will be propagated to both the Atoti Datastore and the relevant
external databases.
No external database configured
If no external database is configured, the IPreferredLimitsAppCrudService will only
interact
with the Atoti Datastore. We do this by injecting a NoOp (“No Operation”) implementation of
the ILimitsAppJpaDatabaseCrudService interface, namely NoOpLimitsAppJpaDatabaseCrudService. This means that changes made to managed
objects will only be propagated to the Atoti Datastore.