Axion: Developer's Guide: Design
This is a draft document, currently in progress and woefully incomplete.
Contributions or suggestions are welcome.
At a very high level, Axion's functionality is distributed across four major layers,
as illustrated in Axion's Major Tiers.
Client applications typically interact with Axion via the JDBC layer,
which is largely an implementation of the standard JDBC interfaces such as
The JDBC implementations in turn use a parser layer to
convert SQL statements into
AxionCommand instances which can operate
on the database. Currently Axion has only one parser, which is JavaCC based, but any implementation
Parser interface could be easily substituted.
AxionCommands are then executed against
the database in the engine layer, which is largely composed
of various commmand,
RowIterator and database object
When necessary, the engine reads and writes data to a storage
layer, which is implemented by various
Axion is designed to be modular, with well defined interfaces circumscribing the
interaction between the various parts. By adhering to these interfaces,
one may substitute additional or alternative implmentations of many of Axion's
pieces, such as tables, indices, functions, constraints, datatypes, even new
parsers and commands.
Axion - Open Source Java Database Engine
$Id: design.html,v 1.31 2007/11/15 15:09:27 rwald Exp $
Published 15 Nov 2007 at 3:07 PM GMT.