-
Notifications
You must be signed in to change notification settings - Fork 13
DB feature spec
Trevor Bedford edited this page Aug 8, 2018
·
27 revisions
- ability to add new columns at any point (strongly suggests NoSQL)
- good JSON support
- authentication
- permissions (i.e., authorization)
- Python bindings actively under development
- ability to sync local <-> master
- web interface with CRUD operations
- git-like history (i.e. easy to roll back or diff commit1...commit2)
- ability to preview changes before syncing (I (james) think this is a must have, or at least to build the tooling to show this before updating the DB)
- REST API layer for CRUD operations? Or done through direct DB connections (via scripts and web client)?
-
RethinkDB ---
- NoSQL database
- robust, awesome api, friendly query language
- backup / restore exists
- doesn't sync, but thinker adds sync functionality to rethink
- Provides database- and table-level permissions
- Officially-supported Python bindings
- nice guide to implementing a REST API with Rethink + Express
-
CouchDB
- NoSQL database
- main feature is sync, probably the most mature platform with sync
- built-in web interface (fauxton)
- SQL-style declarative API
- No well-maintained Python bindings
- Limited control over permissions: Supports authorization classes for "members" and "admins" both of which allow read/write on any document in the database
-
MongoDB
- NoSQL database
- SQL-style declarative API
- sync by dump/import or by cloning
- web interfaces through community projects like mongo-express
- built-in Python bindings (PyMongo)
- Database- and collection-level permissions implemented through user roles with ability to restrict users to specific set of commands on a specific collection
- Document validation to enforce a minimal schema
- Dat --- distributed datastore, does distributed sync really well, low-level (HTTP rather than HTML)
- noms --- distributed database, higher level than dat, deals with structured data, syncs database base instances, importantly, query system has not yet been built / is experimental
- gun --- distributed database, similar in spirit to noms, great looking API
- datomic --- distributed, transactional, immutable, queryable, Would run on DynamoDB. Written in Clojure. Datalog query language (may be a steep learning curve). Git like history. Free for open source, else $5000/year. Flexible schema. Probably too advanced for us.
- chado
- Eve --- Python REST API framework