Skip to content

DB feature spec

John Huddleston edited this page Oct 20, 2017 · 27 revisions

Feature requirements for DB platform

Must haves

  • ability to add new columns at any point (strongly suggests NoSQL)
  • good JSON support
  • authentication (Q from james: auth on collections (e.g. the pathogen)? on tables? on rows in tables? on columns & rows in tables?)
  • permissions (i.e., authorization)

Preferred

  • 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)

Contenders

  • RethinkDB --- NoSQL database, robust, awesome api, friendly query language, backup / restore exists, doesn't sync, but thinker adds sync functionality to rethink
  • CouchDB --- NoSQL database, main feature is sync, probably the most mature platform with sync
  • MongoDB --- NoSQL database, clean API, manual sync or backups through dump and import, web interfaces through community projects like mongo-express
  • Horizon --- JavaScript backend, access RethinkDB database from the browser, manages sessions, auth, React-friendly
  • 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
Clone this wiki locally