In this decade the technology disruption is happening so frequently. If you look at the e-Commerce platforms built on Java/.Net/PHP etc… using the traditional application servers backed up by RDBMS. When the traffic is getting increased we might have come across the scalability, site responsiveness, etc. issues. To overcome this we played techniques like increasing the servers, hardware, load balancing, etc. In this article, we will discuss the technical architecture of an e-commerce system by using industry proven technologies like MongoDB, Node.js, and Elasticsearch. Which will enable us to scale horizontally, fewer system resources utilization, nonblocking I/O enables us to handle more traffic,.
The technical architecture of the system is given below.
Architecture Approach:
Micro Services: Chosen microservices architecture by considering the below points.
- Easy to scale out horizontally based on the demand.
- System Resilience. We can achieve high availability.
- There is a scope to extend/replace the functionality without major impact on the entire system.
Based on the microservices architecture paradigm, the above system is divided into the following services.
- Product Catalog Search Service
- User Registration service
- User Login Service
- Shopping Cart Service
- Product Detail Page Service
- Checkout Service
The data flow of the above system is given below.
In the coming article, we will discuss the technology stack to build the above system. Till then enjoy reading!!!
Has the follow up article been published?
Here is the follow up article https://smarttechie.org/2015/09/03/proposed-tech-stack-to-build-online-store-with-mongodb-node-js-and-elasticsearch/
is there any better search engine that we can use for indexing profile data, catalog and orders in terms of memory and search time
Yogesh,
If you are looking for open source implementations, Apache Solr and Elasticsearch are the prominent ones.
You can find who are all using Apache Solr
You can find who are all using Elasticsearch
If you have lot of money and dead serious about performance, you can try https://www.algolia.com/ as well 🙂
You are right Satis, If you are looking for blazing fast search, then algolia is one of the choice(Oracle Endeca is also one of the choice. But, you have to tune it to get better performance) which comes with its own cost(their algorithms are custom implementations, not based on Lucene). But, if you are looking for opensource implementations, then you will across many Lucene based implementations( Opensource: Elasticseacrh, Apache Solr, Compass etc.. Proprietary : Amazon cloud search, Searchblox). All the Lucene based implementations has trade off between speed index vs speed search. You have to sacrifice any one of that.
Very Good Topic… Please keep posting… Thank you