Rich Data Architecture
One of the big answers to the question "Why Fakoli?" is that Fakoli centers around rich data architecture. We define this as:
- The data model is core for design;
- The system is entity-based, meaning there are one to one correspondence between object data models and database rows;
- Meta data in the data model enables meta-programming for helper components;
- The data model provides a simple API for traversing relationships;
- Data items have rich meta-data based functionality;
- Serialized to and from JSON, XML, etc.
- Simple database persistence and querying with transactional support
- Support for local caching
- Compound data items
- Extremely powerful text processing via DataItem::format()
- supports all of the above plus method calls and helper function calls
- essentially every data item class has a built-in extensible templating engine
- Simple entity based API for SQL joins;
- Shaped result sets (indexed and grouped).
RESULTS:
- Reduced semantic gap equals cleaner code
- Templates are easy and ubiquitous
- Meta programming by structure = more declarative style
- Data interoperability is essentially free
- Comes open data enabled by default
- Makes importing an existing normalized database very simple and fast to implement
Want to see an example? Check out ICTInventory.sonjara.com