XAP Data Modeling
XAP Data Modeling for objects that are used to interact with the Space has the following features:
- Space Object ID - When a new object is inserted into the Space, it embeds a unique ID (called the UID). The UID can be generated explicitly by the client using a unique value generated by the application business logic, or using a sequencer running within the Space.
- Annotation-based metadata - The XAP API supports class and property decorations with POJOs. These can be specified via annotations on the Space class source itself. You can define common behavior for all class instances, and specific behavior for class fields.
- XML-based metadata - Class and property decorations for POJOs can be specified via an external XML file, accompanied with the class byte code files located within the JAR/WAR. You can define common behavior for all class instances, and specific behavior for class fields.
- Storage type - To reduce the memory footprint of the objects stored in a Space, different storage types can be defined for individual properties of a Space class. Object properties can be assigned a storage type decoration, which determines how it is serialized and stored in the Space.
- Custom Serialization - You can control the serialization of embedded properties.
- Routing property - A partitioned Space enables performing Space operations against multiple Spaces transparently from a single proxy. The primary goal of the partitioned Space is to provide unlimited in-memory Space storage size, and group objects into the same partition to speed up performance. The initial intention is to write data into the partitioned Space, and route query operations based on the template data. In order to do this, a routing property can be defined on the entry type.