Historically, MySQL had been the de-facto database of choice for microservices at WePay. As WePay scales, the sheer volume of data written into some of our microservice databases demanded us to make a scaling decision between sharded MySQL (i.e. Vitess
) and switching to a natively sharded NoSQL database.
This is a very common problem for many companies. But while reading this article I realized something that was missing from many other articles: the huge amount of complexity that a distributed system can have.
This article explains very clearly all the different problems that they were not experiencing while using with MySQL and that they are going to experience when they are going to move to a NoSQL database.
I believe that most of the time a company makes the decision to leave a relational database for an alternative is because they are bored and wants to follow the trend, which is probably the worst reason for a CTO to have, and this article is showing how much complexity is adding without any actual benefit.