gary-rowe / multibit-merchant

⚠️ OBSOLETE. DO NOT USE! A free and open source Bitcoin ecommerce platform, with several representative clients (online shop, admin etc). Uses Dropwizard, HAL, MongoDB etc
http://multibit.org
Other
150 stars 50 forks source link

Research platform deployment #9

Closed gary-rowe closed 12 years ago

gary-rowe commented 12 years ago

Questions that need answering are:

  1. Horizontal scalability - is it important at this stage?
    • Probably not - a single node should be able to handle the kind of load likely to be encountered by early adopters of the platform
  2. Can traditional SQL databases like H2 and HSQLDB operate in an arbitrary cloud? (EC2, Heroku, Linode etc)
  3. Is NoSQL a good choice for an ecommerce platform?
  4. Should MBM have a polyglot persistence solution where different DBs are used for different purposes?
    • It would greatly increase the complexity (plethora of DBs)
  5. Ease of maintenance
    • Consider schema changes, indexing, backups, restores, integrated security
    • Consider admin tool (see DBVis
  6. Avoidance of provider lock in
    • MBM is a general-purpose app that can be deployed by the user on a single box if necessary, but allows any part of it to be scaled out horizontally
    • Ideally, a Java-based open source DB is required to allow anyone to run it
      • OrientDB - NoSQL looks interesting
      • Neo4J - NoSQL too commercial
    • VoltDB - SQL with horizontal scaling support
gary-rowe commented 12 years ago

Researched VoltDB. It is a NewSQL database that refutes many myths about SQL databases being unable to perform at scale. By limiting how queries are made it introduces serious performance and scaling improvements.

However, at this stage of MBM's life, VoltDB is aiming too high.

Supporting articles High Scalability (2010) VoltDB Features

gary-rowe commented 12 years ago

Research HSQLDB. It is a standard SQL DB. Among its many advantages see this Tech FAQ article:

So the decision is made: HSQLDB it is.