Over a million developers have joined DZone.

The Failure of MongoDB & Bitcoin: Individual Incompetence, not Flawed Design

· Java Zone

Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code! Brought to you in partnership with ZeroTurnaround.

Not too long ago, we covered an article about how NoSQL (MongoDB) design flaws brought down two Bitcoin exchanges, Flexcoin or Poloniex. However, according to Shane K. Johnson, the conclusion that NoSQL design was to blame was determined too quickly, and without enough evidence. In other words, Johnson argues that the failure was one of assumptions:

The real bitcoin / NoSQL failure did not occur at Flexcoin or Poloniex. It was a failed attempt to associate their failures with NoSQL.

Johnson references a response to Sirer's original post from Alex Popescu, in which Popescu suggests that the problem was incompetent development, rather than NoSQL issues. Specifically, Popescu points to two major problems with Sirer's argument:

  • ACID guarantees would have solved Sirer's problem
  • The NoSQL databases Sirer refers to provide solutions to his problem

Beyond jumping to conclusions, then, Johnson debunks a number of points made in Sirer's original. For example, Johnson argues that the example of an application processing ATM withdrawals is flawed, and that the description of how MongoDB might handle such an application is inaccurate.

Johnson doesn't go so far as to imply that Sirer's original is completely fabricated, or anything like that; it's just not a fully-formed argument, because "the dots were not connected." Johnson sums it up like this:

  • There were failures.
  • Here is a poor example.
  • Here is an inaccurate description.
  • The problem is MongoDB.

For Johnson's detailed argument, check out his full article, and take a look at Popescu's post and Sirer's original as well.


The Java Zone is brought to you in partnership with ZeroTurnaround. Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code!

Topics:

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}