MongoDB recently announced some interesting, though incremental, enhancements. These included improved "joins" in the aggregation framework, better document validation using JSON schema, and more reliable behavior in the event of network failures. These features attempt to close the gap between the functionality of MongoDB and traditional relational databases - joins, schemas, and commits. On top of these incremental updates, MongoDB announced a couple of features that intrude on functionality usually provided by application servers or desktop programs.
MongoDB Charts provides a capability for creating charts and dashboards directly from MongoDB data. Previously, you would use a tool like Tableau to generate charts from Mongo data. Tableau and similar products expect a SQL interface to retrieve data, so you would use the MongoDB connector for BI to allow Tableau to issue SQL commands to retrieve MongoDB data. The MongoDB Charts product simplifies this three-way connection and allows you to generate charts and dashboards from within a web interface working directly on a MongoDB instance.
MongoDB encroaches on the application server space with it’s new Stitch product – a Backend as a Service (BaaS) offering. Stitch presents a REST-like API to MongoDB cloud databases.
Using Stitch as an alternative to the Mongo Wire Protocol has some advantages; most significantly most firewalls will block MongoDB default ports but will allow web service calls. However, the real power of Stitch is in its ability to integrate with other web services.
A Stitch application can be linked to a variety of back end services – Twilio for text messages, MailGun for email as well as other popular services such as Slack and GitHub. When an event occurs in one of these linked services – for instance if a text message is received by Twilio – then a database action can be initiated.
Stitch can authenticate using standard OAuth methods, and backend rules define what data access privileges are granted to various categories of users.
Why is MongoDB moving up from the Database into the middle tier? From the users point of view, Stitch can make it easier to build applications that want to integrate MongoDB with other web services. Stitch is particularly useful in creating quick entry points for IoT or mobile applications which want to perform reasonably simple data operations. These applications could be developed without the need for a middle tier technology such as NodeJS.
From a commercial point of view Stitch has a couple of clear advantages for MongoDB.
- Applications written using Stitch are much “stickier” than those written directly against MongoDB. Microsoft recently announced support for the MongoDB wire protocol for its DocumentDB (now Cosmos) database. Oracle offers a MongoDB-like syntax as well. The last thing MongoDB wants is for users to swap out Mongo for someone else’s cloud offering.
- MongoDB’s monetization strategy has a lot to do with converting customers to the cloud based Atlas service. Like a lot of open core companies, MongoDB needs to convince users that there is some reason not to simply use the free product. Stitch is a cloud native product so it encourages MongoDB users to migrate to the subscription based Atlas cloud.