Yesterday, we announced the release of MongoDB Stitch, a backend as a service for MongoDB designed for the modern application development paradigm. As with MongoDB Server, MongoDB Stitch was born to ameliorate the drudgery associated with building applications and replace it with the joy of creativity. What we did with the database 10 years ago, we now hope to do at the heart of application logic.
Back in 2007, MongoDB was born from 10gen, the platform as a service that Dwight Merriman and I created to solve a very similar problem, in a very different environment. Back then there were no services. The state of the art in application development was a Ruby on Rails app deployed to Heroku, and if you were really cutting-edge you'd be storing data in S3. Back then, we were trying to solve things like image thumbnailing and load balancing and rapid scaling… oh, and data storage... in such a way that developers could just write their code and not worry about the rest.
Speaking of which, how did people do, for example, image thumbnailing back then? Well, we all did the same thing: we installed ImageMagick on a bunch of servers and wrote some wrapper code. Of course, no-one would dream of doing that today. Today there are services for that sort of thing! In fact, we now have a virtual embarrassment of riches in the array of services available to handle everything from image OCR to credit card payments to geo-position mapping. But this glut of functionality has created a new pain point for developers.
A modern application developer needs to do three things above all:
1) support CRUD operations with data;
2) specify access control rules on their data; and
3) connect services together, and to their application, whether they are third-party services providing commodity functionality or proprietary microservices.
Unfortunately, each of these three things, until now, have required developers to create kloc upon kloc of the same time-draining, boilerplate code. Even when everything goes right with that code it's a drain on productivity, and when things go wrong, it becomes a liability ranging from costly to disastrous. All just to realize the promise of cloud computing and a service oriented architecture. This is exactly the kind of aggravation and inefficiency that MongoDB was founded to eliminate.
MongoDB Stitch does that by providing exactly the three things a modern application requires, as a simple layer adjacent to a MongoDB cluster. MongoDB Stitch provides a:
1) REST API to MongoDB, letting client code interact directly with the databases;
2) configuration based access control system, providing a flexible and powerful way to express precisely which users can perform what operations on what data; and
3) uniform, document-centric mechanism to connect services with custom application code.
And that's it. MongoDB Stitch can be used alongside existing code or to stand up brand new applications. Applications can do all the standard CRUD against MongoDB, but with complete assurance that clients can only access data to the exact extent to which they’re supposed to. Developers can compose services with MongoDB data operations into pipelines, meaning text messages routed from Twilio can become documents that can flow to MongoDB where they can be stored and continue on to S3 to be served via http. And none of it requires glue code beyond the bare minimum required to name and connect the services.
MongoDB Stitch is the next phase of MongoDB's mission to erase the routine tasks facing developers that lead to tedious, error-prone, and undifferentiated work. We're thrilled to finally have a chance to put the next piece of the puzzle in place.
P.S. I’m so thrilled that when I finally got to announce Stitch on stage at MongoDB World, I couldn’t help but show it off myself. If you want to see the code I demoed, it’s up on GitHub here.
About the Author - Eliot Horowitz
Eliot Horowitz is CTO and Co-Founder of MongoDB. Eliot is one of the core MongoDB kernel committers. Previously, he was Co-Founder and CTO of ShopWiki. Eliot developed the crawling and data extraction algorithm that is the core of its innovative technology. He has quickly become one of Silicon Alley's up and coming entrepreneurs and was selected as one of BusinessWeek's Top 25 Entrepreneurs Under Age 25 nationwide in 2006. Earlier, Eliot was a software developer in the R&D group at DoubleClick (acquired by Google for $3.1 billion). Eliot received a BS in Computer Science from Brown University.