Cassandra + ElasticSearch VS PostgreSQL or MySQL

Assuming we want to build a shop like Amazon with millions of products in dozens of different categories, where each category has its own specific properties but also shares some common properties, I am wondering: is a SQL-based database like MySQL or PostgreSQL a better choice, or should I go with a NoSQL solution like Cassandra combined with Elasticsearch? I’m not a professional web developer but I’m working on an MVP app for a startup and would like to understand which option would be better. I have more experience with Cassandra and its denormalization concept, and I also know a bit about Elasticsearch, but I’m wondering if I might be going in the wrong direction if using PostgreSQL or MySQL would be a better option. My main concern is to have a home screen like Amazon’s, where users can filter products by one, two, or even ten different properties. For example, they should be able to choose to see only products from categories A and C, or see only products from category B that are within a specific price range and have a red color and will be shipped tomorrow, etc. etc.

Jun 12, 2025 - 06:20
 0

Assuming we want to build a shop like Amazon with millions of products in dozens of different categories, where each category has its own specific properties but also shares some common properties, I am wondering: is a SQL-based database like MySQL or PostgreSQL a better choice, or should I go with a NoSQL solution like Cassandra combined with Elasticsearch?

I’m not a professional web developer but I’m working on an MVP app for a startup and would like to understand which option would be better.

I have more experience with Cassandra and its denormalization concept, and I also know a bit about Elasticsearch, but I’m wondering if I might be going in the wrong direction if using PostgreSQL or MySQL would be a better option.

My main concern is to have a home screen like Amazon’s, where users can filter products by one, two, or even ten different properties.

For example, they should be able to choose to see only products from categories A and C, or see only products from category B that are within a specific price range and have a red color and will be shipped tomorrow, etc. etc.