Magento 2 MongoDB Integration: As we are the largest supplier of Marketplaces and Multichannel ingratiation. There is always a topic of discussion about choosing the right tools.
NoSQL is one such tool. lots of our customers are asking the query again and again. Do they need to switch to MongoDB or Cassandra ( NoSQL )? Over Mysql? ( RDBMS )
Or they should start from Magento 2 MongoDB Integration?
Before concluding I would like to ask a couple of questions. The first and foremost important one is
Why Do you want to integrate MongoDB?
There are a couple of answers to these questions. Sometimes customers say it scales well and you can share the data easily.
Also, replication is something super scalable and easy to manage, unlike MySQL. You can easily add more and more clusters for slaves.
There are a lot of other advantages of MongoDB over MySQL. I agree with that.
But But But do I need to replace the Magento 2 RDBS (MYSQL) with MongoDB? Well, I would suggest a big NO.
Every tool has its own merits and demerits
Indeed and this is very true. You must not use anything in your e-commerce store randomly. You must investigate where the problem is?
Even I was quite stunned customers had less than 100 customers concurrently and they are blaming Magento or MySQL for slow performance.
For sure MongoDB will not be useful for this case.
MongoDB has a brilliant use case on their website – https://docs.mongodb.com/ecosystem/use-cases/
And I would recommend everyone to check that out. Especially product catalog model part – https://docs.mongodb.com/ecosystem/use-cases/product-catalog/
Even I am a great supporter of MongoDB for the product catalog part when you have loads of 1000+ variants and combinations in every product.
But not as a replacement. Magento 2 works well with existing tools. They have optimized a lot. Example – MVVM approach for the shopping cart.
In any e-commerce system product model is not everything. You have other entities as well – Orders and customers and as per my knowledge, there is no replacement for that in Magento 2 at the moment.
Even recently we got the news for “MongoDB gets support for multi-document ACID transactions” – https://techcrunch.com/2018/02/15/mongodb-gets-support-for-multi-document-acid-transactions/
Which will be for sure a plus for any commerce system built on MongoDB.
Also, I hope the Magento team will release more database driver support in the future.
There are thousands of options to scale your e-commerce marketplace or shop with the existing setup. Replacing MySQL with MySQL is not the only option. There is plenty of workarounds.
Well I don’t care I want to include MongoDB
If that is the case. You must think not for them today but for future updates, templates, and 3rd party plugins as well.
For sure it will be hard and on every update again you need to update everything and for sure that will be a mammoth task.
But against all odds, if you want to use MongoDB, you should use it for the product catalog model. And you must create a kind of adapter between Magento 2 and MongoDB in this way you should not alter any code at the Magento end.
You can easily create the product API and manage the product catalog model at the MongoDB end.
Again my conclusion is you must investigate why you need NoSQL with Magento 2? because I am 100% sure there are tons of options for the same.
But if you are doing so go with more like a micro-services kind of architecture. And use the mysql+nosql together. In this way, you will get the complete boost.