Over a million developers have joined DZone.

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

DZone's Guide to

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

· Java Zone
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

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.

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat


Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

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


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

{{ parent.tldr }}

{{ parent.urlSource.name }}