Key-value on top of SQL
[VERY MUCH A WORK IN PROGRESS]
Simple key value implementation on top of old fashioned sql.
Some stuff I like for storing my data
- A very simple engine with a minimal api (get, put, del, query) so it can be replaced with something more optimized if needed
- Old fashion storage engines that you can hire as a service and install locally
- options (sqlite, mysql, postgresql)
- Data model flexibility, no schemas
- Enforce querying on indexes, so they are always fast
- Separating indexes from the actual data, and dynamically generating them on put
- The ability to cheat on all of the above if you need it
- Transactions and aggregates
- No type checking, validation etc.
- Not very space efficient (index is data copy)
- Definitely not the fastest way to store data
age: type: "int": dataage
name: "Koen Bok"
backend = "postgres://localhost/test"
store = backendmodelsperson
storequery "person""name >": "10"
Run the tests
REST API example using express. Deployable to Heroku.
- Make it work in the browser with websql database
- Add middleware system and implementations (caching, serializing, performance, logging, structured data validation, authentication)
- Add events action.pre|post
- Refactor transactions to be objects
- Refactor query pattern to something nicer (allowing querying on multiple indexes)