One of the challenges many developers have is keeping up with backend processes. Things like data security, service integrations, and code for data manipulations can take up a lot of time and resources. As a result, many have made a move to utilize a Backend as a Service (BaaS). If you have an application backed by MongoDBÂ there is a new Baas option available, MongoDB Stitch.
MongoDB allows you to get started at no cost with Stitch, which is always great. At the moment it is backed by MongoDB's Database as a Service (DBaaS) offering, Atlas. In another post, I discussed Atlas and am excited that these two services are connected.
A Backend as a Service approach to development allows mobile and web developers to connect their applications to backend cloud storage and utilize inherentÂ processing capabilities. Further, it provides many common features that users demand from sites and applications. Some of these features are security, user management, push notifications, and social networking integrations.
MongoDB Stitch Benefits
Stitch provides many capabilitiesÂ for developers to leverage the features inherentÂ in MongoDB along with BaaS concepts. It provides direct access to the database, whether it is already existing or new data, Stitch allows developers to focus on building their application. The backend logic is taken care of and provided.Â This leads to a faster development cycle.
Stitch takes MongoDB's data security features even further. It provides functionality such as end user authentication and access control on a per-field basis. For example, if the marketing department doesn't need access to a customer's financial information, those fieldsÂ can be excluded from their access rights. This allows developers and application stakeholders to have confidence that information and services are only available to the proper users.
MongoDB has built Stitch in an open fashion. It provides a single API allowing access to both the MongoDB database as well as other public cloud services. This allows for microservice integration and prevents being committed to a single vendor.
Another terrific benefit is the integration with Atlas. This allows for easy scaling of capacity and performance as an application grows. This is yet another set of duties that don't need to be managed ourselves. We can allow the details of the backend application and infrastructure to be handled by a team of Dev-Ops folks at MongoDB and can then concentrate on the application itself.
MongoDB Stitch Components
There are three main components of Stitch, pipelines, services, and rules. Services come in two different varieties, MongoDB services, and partner services for integration with services like Amazon S3 or TwilioÂ for messaging. Let's take a quick look at what these different components do and how they fit into an application.
Services in Stitch allow for application integration and execution of common actions. There are integrations for a variety of third-party (partner) services for such tasks as user authentication through Facebook or Google, Slack, Twilio, and some components of AWS, to name a few. The HTTP Service allows for a MongoDB Stitch application to connect to REST API services. MongoDB has a dedicated service for connecting to Atlas and has some built in pipeline operations.
A Stitch pipeline allows for a sequence of actions to be performed in order by the Stitch services. This is a powerful feature. It allows a series of actions to be defined all through simple JSON syntax.
A pipeline is built in stages, each running in consecutive order. A stage runs and passes the information it generates onto the next stage. For example, you can do a MongoDB aggregation stage from your data and determine which user in the past week had the most likes on your new Snap-o-gram app. That stage could then pass that information to the Twilio Service which could send a text to their phone with this awesome accomplishment.
There are some Built-In Actions for filtering the pipeline input, defining in an explicit way what the output of a stage will be, expression evaluation against input documents, and a project feature, to name a few. Another nice feature MongoDB has provided is the concept of named pipelines. This allows for a designed pipeline to be reused within a Stitch app and referenced by name. A tremendous help for writing code that follows the DRY (don't repeat yourself) principle.
The last major component of a MongoDB Stitch is Rules. Rules, as one might guess, allow for a control over the actions a service takes. Rules are designed and written in JSON format, as are pipelines.
One can define a rule for read, write, and validation operations, for example. These can be used at the document and on down to the field level. Want to prevent a service from reading specific financial data in a document? Write a rule for that. It is a powerful feature of MongoDB Stitch and provides an extra level of security for your data.
MongoDB Stitch Development
The name Stitch comes out of the idea of stitching together the pieces of an application and not from the Disney character in Lilo & Stitch. Given the benefits and features MongoDB Stitch brings to the table, I think it is a very appropriate name. Much like sewingÂ brings all of the pieces of a garment together, MongoDB Stitch does the same thing for your application.
I know that for myself I plan on utilizing this service on my next project.
As with any "pre-packaged" service, one gives up some flexibility and control over your application. However, for being able to retain direct access to your MongoDB database, and the collections and documents it contains, Stitch is a great option.Â Keep in mind that as of this post, Stitch is still in a beta version. As with any beta product, things may change with the final product.
There are several MongoDB specific terms in this post. I created a MongoDB Dictionary skill for the Amazon EchoÂ line of products. Check it out and you can say "Alexa, ask MongoDB for the definition of authentication?" and get a helpful response.
Follow me on Twitter @kenwalger to get the latest updates on my postings.