Clodlets natively support advanced operations on the business data they manage, such as native historicization (storing and retrieving each historical version of any given objects and its relationships, and meta-data on which user created each version and when) and deep cloning of structured objects with custom cloning policies.
Furthermore, the GraphQL API of any given Cloudlet can expose a much richer information than the one actually persisted on its database; in fact, the conceptual data schema of a Livebase Model allows to declare (without coding) derived attributes as math expressions or complex queries. Such derived attributes are efficiently calculated in real-time by the Cloudlet and returned to the API invoker.
By declaring specific extension points (handlers) on its Model, any Cloudlet can also be extended with plugins that can be coded in any JVM-compatible language (Java, Scala, Kotlin, etc.) to implement any business logic.
Plugins can be invoked by the Cloudlet when specific events occur (e.g. when a business object of a given type is created or modified), upon a specific GraphQL query or on a scheduled basis. Thanks to its OSGi-compliant architecture, plugins can be hot-swapped without halting the Cloudlet. For each specific Model, Livebase generates all the Java interfaces to be implemented (SPI) and provides a framework to support plugin implementation.
Integration with other backend components of the same applications or with external systems (such as ERP or CRM) can be achieved both synchronously (via direct API invocations) or asynchronously (e.g. by a message queue service like JMS).