In my long software development career, I always felt that the most significant time taking task is not building the actual business logic, but the amount of code that you need for your basic housekeeping tasks or in other words the “basic chores” of an application developer.
Initially, these chores included session management, memory management, thread management, etc. With the introduction of boilerplate codes and frameworks, etc. these chores have been drastically reduced. Thus making and the development teams to focus more on the core business functionality.
However, most of the team end up re-inventing the wheel by writing these lots of essential features over and over again such as user Authentication, sending notifications to your customers, etc.
If the above mentioned is the story of Enterprises, the story is a lot worse for startups, The Problem of unwanted chores is a big predicament for them, as most of the time, they are starting the scratches.
If you look at the Basic chores, they include the following.
- CRUD of Data
- Fine-Grained data access
- Integrations with other services
Now looking at the overall cost of these chores it is not just the development time and effort, but the increased the code complexity, Testing efforts, etc.
MongoStitch is meant to address precisely these problems. In the last Annual Developer conference, MongoDB introduced MongoDB stitch as an addition Mongo Atlas, their Cloud-based “database-as-service.”
Though Atlas is available on most of the platforms, MongoStitch is currently supported only on AWS US East 1 region and its tailored as an add-on to the existing MongoAtlast subscription.
Mongostitch allow you to create an application from your Atlas console, configure it by enabling the following
- Add new features to your existing application
- Control the access to data for user
- Integrate with other services
Once you set up your MongoStitch application on the Console, you can use create its client application and start calling the MongoStitch functionalities from your application using the stitch client.
Currently, Stich clients are available for the following platforms
- Android Application (java)
- iOS Application (Swift)
Mongo had done an excellent job of providing detailed documentation, and you can use the getting started guide to build sample applications
Though MongoDB Stitch is still in Beta, the features it offers looks very promising. Let us explore few of these features.
Collection/ Field-level permissions
MongoDBStitch allows the developer to specify the access for the collections. These access rule could be defined either for the collection itself or can be specific to each field in the collection, Though you can specify these rules be aware that they will be overridden by the access that you would have provided at the MongoDB level
This is my favorite part, Integrating with other services are a breeze. As of Jan 2018, the following service integrations are supported by Stitch
|Service Name||Supported Services|
|S3||Upload file to S3, generate signed URL|
|Amazon SES||Send Email|
|HTTP Services||Basic HTTP calls (get, post, delete, put, patch, head)|
|GCM||Push notifications to Apple and Android devices|
|Twilio||Send and Receive Text Messages|
Each of these service calls can be configured to have its own rules
User Authentication services using the following
- E-mail and inline password
- API Keys
- Custom/Third party Authentication.
These integrations are super easy, and I was able to create a google and facebook login integration for my sample app within 15 minutes.
These are named constants that you can use in Stitch functions and rules.
As of now, the ECMAS version 6 is not supported in functions.
After playing around with MongoStich for a few days, I feel that this has lots of potentials and it can definitely improve productivity and helps you to focus on the core business logic.
During my POC I wanted to extend my logged in users with additional attributes say for example I wanted to capture the address and phone numbers of my user, however, MongoStich is saving the users in a different mechanism that is not really extendible and not visible as a collection.
If Mongostitch allows the user information to be saved to a table that can be extended with any extended attributes that I wanted to add to that users it will make the life more easier for developers.
Here are some useful links on MongoDBStitch
Tutorials and Getting Started Guide: https://docs.mongodb.com/stitch/getting-started/
Let me know your thoughts …