Skip to content

The Architecture

VievCommunity edited this page May 27, 2020 · 3 revisions

FactEngine is a database query engine over one or more data stores, and uses a 3-Layer Architecutre.

FactEngineArchitecture

The three layers are:

  1. Query/Data Definition Engine (FactEngine);
  2. An Object-Role Modeling metamodel over one or more data stores; and
  3. The data store/s, which include their relational metamodel.

Why a Dual-Metamodel Approach?

Having an Object-Role Model metamodel over a relational metamodel allows for a few things to happen in the reasonable amount of time and with inherent benefits. These are:

  1. Graph Database Queries can be expressed over a relational model;
  2. SQL queries can be expressed over a relational model;
  3. We don't need to build a database from scratch. The relational model is tried and proven and scales well;
  4. A pure Object-Role Modeling database would store all information in 5th/6th Normal Form, which is highly inefficient use of disk space;
  5. The trade-offs allow for rapid proof of concept;
  6. There is no impediment to transferring the query languages to a 5th/6th Normal Form database in the future if that is seen to be beneficial.

Basically, the FactEngine architecture is one of simplicity at a reasonable budget and timeframe.

Clone this wiki locally