Unlike traditional ORMs (Object-Relational Mapping), Dari does not map objects to database tables. Instead, it stores data in a schema-less format that is appropriate for the underlying database. For RDBMS (Relational Database Management Systems), Dari serializes object data into JSON and stores it in the database as a BLOB. Changes to the data model do not require updates to database schema.
With Dari, data is modeled with Java classes that use standard data types. A Java class serves as the specification for a model, defining types, relationships, and behaviors. For example, you can model a system user as
User, with a first name, last name, and username. You can then define a related model called
Activity, a base class with
User fields. Specific system activities like checkin and checkout can be modeled as subclasses of
Activity. What results is an emerging object model representing instances of
Activity that are stored in the underlying database.
Anything can be modeled and accessed with a web view or through an API. A data model can be altered by modifying the Java classes that define it. Free of schema dependencies, Dari enables rapid data model changes.