Why Do I Care? - adamfowleruk/mljs GitHub Wiki

A question that every project should have to answer. Here's a few reasons:-

MarkLogic is AWESOME

MarkLogic Server is an Enterprise class NoSQL database. By this I mean it not only handles the scale of many OpenSource NoSQL databases, but also provides Enterprise class features such as ACID transactions, high availability and government grade security, to name just a few.

MarkLogic stores XML documents in a highly compressed and efficient format on local disk. It also has an in memory store for indexes and committing changes. MarkLogic also uses MVCC, which means an update is actually just a new document, not modifying an existing one. This makes MarkLogic Server very, very fast.

MarkLogic can be used to store anything. JSON documents are stored internally as XML, but can be accessed either as XML or JSON. This means you can use MarkLogic's built in full text search, and stored searches, against JSON documents. This is much better than crow barring a search engine on top of your choice of database, and spending hours doing it to find it doesn't meet your requirements.

Convenient for JavaScript developers

MLJS is designed to be used from any NodeJS application. It is also accessible directly from within a browser's JavaScript engine too. It is designed to be familiar to JavaScript developers, and so uses JSON throughout and a simple, single object (mljs) rather than a tonne of MarkLogic specific objects.

The API wraps the MarkLogic 6 and 7 REST API. This provides all the functionality of the API, but with all the difficult stuff (authentication in Basic or Digest, search options) abstracted out. Also, the API assumes a default configuration the same as a vanilla local MarkLogic Server install. This makes getting started with MarkLogic very simple. Just download the API, install MarkLogic, and write a couple of lines of JavaScript. Easy.

Lower cost than Open Source databases

Yes, lower cost. How so? Because Open Source database companies don't tell you how much time and effort you're going to waste on development and crow barring your own requirements in to a database server that's not specifically built for your needs.

MarkLogic is simple to install (download an installer, run it, done) and includes many features - An application server, database and search engine from one install, with no configuration complexities required. Also, the REST API provides you with everything you're likely to need from a NodeJS/JavaScript application. MLJS just wraps this functionality, and even provides a generic do() method so that when new functionality is released, you can access it before I get chance to update MLJS with a specific helper method.

Ease of installation + No extraneous configuration + Minimal API learning Curve + quicker time to value = lower project development costs