I am building an api, to share discounts between users. Each discount can be linked with several users, using joins and many to many relationships.
Currently I am using MySQL and I am looking to scale horizontally.
But when I want to enable sharding based on discount ID and replacing joins, my new schema seems really close to a mongodb schema with embedded documents and duplicated data.
To scale horizontally efficiently, how can I choose between a stack based on mysql with sharding, memcache and master-slave replication and a stack based on mongodb.