[erlang-questions] Web app back-ends

Lloyd R. Prentice lloyd@REDACTED
Wed Jun 18 23:21:19 CEST 2014


Hello,

Jesse Gumm and I are working on a Nitrogen how-to book. We'd like to BRIEFLY point our readers in the right direction when they consider a database back-end for their web apps. We understand that this is a much more challenging decision than can be addressed without careful analysis. But we'd like to provide a conceptual framework to help narrow the field and avoid "flavor-of-the-day" snap decisions. Can some experienced Erlangers help correct any misperceptions below and fill in blanks. Please, no flame wars.

Many thanks,

Lloyd

SQL/Relational Databases:

postgeSQL
- consider when: you want to use a battle-tested relational data store.
- reject when: your data needs are more key-value oriented or free form/less structured.

MySQL/MariaDB/etc:
- consider when: You want a SQL datastore that's fast, but that is known to take some shortcuts in the name of speed or "ease of use" (such as silently truncating strings if too long for fields), and master/slave replication is good enough.
- reject when: Your data needs are more key-value oriented or free form/less structured.

NoSQL/Key-Value stores:

ets
- consider when: speed is a high priority, since it's all data is stored in ram, like a cache system
- reject when: you can afford to lose data, or data needs to be replicated across a cluster.

dets
- consider when: speed is not a priority, since all requests immediately go to and come from disk
- reject when: speed is essential or you need replication.

mnesia
- consider when: you want built-in clustering/replication, storing Erlang records and terms natively, and built into the Erlang system (no dependencies needed)
- reject when: you don't want to mess around with records or QLC.

couchDB
- consider when _______
- reject when __________

cowDB
- consider when _______
- reject when __________

riak
- consider when: you need high availability, no-single-point-of-failure, replicated clustered key-value datastore.
- reject when: __________

mongoDB:
- consider when: https://www.youtube.com/watch?v=b2F-DItXtZs
- reject when: https://www.youtube.com/watch?v=b2F-DItXtZs

leoFS
- consider when _______
- reject when __________

other _________________
- consider when _______
- reject when __________

none of the above
- consider when _______

Sent from my iPad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140618/d10060df/attachment.htm>


More information about the erlang-questions mailing list