At the data-storage level, everything in Axiom is an object and is stored in a JSR-170 compliant object-oriented database. Out of the box, this database use the Axiom Datastore (a customized version of Apache Lucene) and has been adapted to seamlessly work with relational databases (MySQL, Oracle, etc) and with other search engines (Fast).
These objects are surfaced to Axiom applications via the scripting layer. Each application runs in a Javascript environment using on the [Mozilla Rhino] engine.
Applications are created in an object-oriented fashion. Developers create object prototypes by simply defining their persisted properties in plain-text Java properties files. A prototype's methods are defined as Javascript functions along with XML templates in TALE.
The application layer is designed to be highly modular. An application can be written to stand alone (Axiom Blog) or as a framework for other applications to be written within (Axiom CMS). Further, the Axiom Javascript libraries are available to all applications and developers can create their own to make globally available.
All incoming web requests are mapped to the objects in an application in a RESTful fashion- when one makes a request to an Axiom application, one is accessing a particular object in that app, invoking a Javascript method or TALE template and viewing the result. All incoming web requests go through our integrated, method-level security layer. Every prototype is secure by default, and it's methods are deliberately opened to web requests by the developer instead of needing to be locked down.

