This part of apollo actually has very little to do with web programming, and can be easily separated from the rest of the project. The Object abstraction layer gives the programmer a powerful way of storing java objects into a relational database, while not crippling the incredible power, speed, and querying ability of the relational data model. The use and creation do not require the use or knowledge of SQL. Data is stored in database primitives so queries which aggregate large amounts of data through joins or group bys can be done inside the database server. Each object class is defined by a Java Class, allowing methods to be added to Objects since they are true Java objects. An objectified query language abstracts out table names and reduces the complexity of natural joins. All object database code should be cross database compatible, unlike standard SQL. A Database adapter is written for each different database server to compensate for variations between database servers. Currently a MySQL adapter is available in production grade quality.