PRESENTATION - June 20, 2017

Building a Microservices-based ERP System using Node.js and MongoDB

Speaker: Jerry Reghunadh, Architect, CAPIOT Software Pvt. Ltd.

One of the leading assisted e-commerce players in India approached CAPIOT to rebuild their ERP system from the ground up. Their existing PHP-MySQL setup, while rich in functionality and having served them well for under half a decade, would not scale to meet future demands due to the exponential grown they were experiencing.

We built the entire system using a microservices architecture. To develop APIs we used Node.js, Express, Swagger and Mongoose, and MongoDB was used as the active data store. During the development phase, we solved several problems ranging from cross-service calls, data consistency, service discovery, and security.

One of the issues that we faced is how to effectively design and make cross-service calls. Should we implement a cross-service call for every document that we require or should we duplicate and distribute the data, reducing cross-service calls? We found a balance between these two and engineered a solution that gave us good performance.

In addition, our current system has 36 independent services. We enabled services to auto-discover and make secure calls.

We used Swagger to define our APIs first and enforce request and response validations and Mongoose as our ODM for schema validation. We also heavily depend on pre-save hooks to validate data and post-save hooks to trigger changes in other systems. This API-driven approach vastly enabled our frontend and backend teams to scrum together on a single API spec without worrying about the repercussions of changing API schemas.

View Presentation

View Presentation
© 2020 MongoDB, Inc. - Mongo, MongoDB, and the MongoDB leaf logo are registered trademarks of MongoDB, Inc. | Legal Notices

PRESENTATION - June 20, 2017

Building a Microservices-based ERP System using Node.js and MongoDB

View Presentation

Speaker: Jerry Reghunadh, Architect, CAPIOT Software Pvt. Ltd.

One of the leading assisted e-commerce players in India approached CAPIOT to rebuild their ERP system from the ground up. Their existing PHP-MySQL setup, while rich in functionality and having served them well for under half a decade, would not scale to meet future demands due to the exponential grown they were experiencing.

We built the entire system using a microservices architecture. To develop APIs we used Node.js, Express, Swagger and Mongoose, and MongoDB was used as the active data store. During the development phase, we solved several problems ranging from cross-service calls, data consistency, service discovery, and security.

One of the issues that we faced is how to effectively design and make cross-service calls. Should we implement a cross-service call for every document that we require or should we duplicate and distribute the data, reducing cross-service calls? We found a balance between these two and engineered a solution that gave us good performance.

In addition, our current system has 36 independent services. We enabled services to auto-discover and make secure calls.

We used Swagger to define our APIs first and enforce request and response validations and Mongoose as our ODM for schema validation. We also heavily depend on pre-save hooks to validate data and post-save hooks to trigger changes in other systems. This API-driven approach vastly enabled our frontend and backend teams to scrum together on a single API spec without worrying about the repercussions of changing API schemas.

Try MongoDB Atlas, our fully-managed database as a service
Available on AWS, Azure and GCP.