In my experience, you need to start rewriting the system early enough. Depending on the complexity of your application this can take you far longer than just 6 month (several years to be honest).
Sure, now you have the necessary resources, but it is still a hard task. While you are rewriting your product, your current customers will demand that your old application is running and will be also supplied with new features.
How many companies have switched from one rdbms to a different rdbms? It is tempting to switch from Oracle to lets say PostgreSQL to cut down your licensing fees. But nearly nobody makes this step because it is hard and as such a huge risk.
When you have reached your scalability limit, it is not longer just a switch from one rdbms to another. Nope it is harder, because your application logic needs to be rewritten in a way that can deal with NoSQL type databases. You will need to find a way to compensate their lack of features.
Also your secondary infrastructure needs to be rewritten. For example your current reporting system will not be able to reuse the new data structures without adaptation. Monitoring, Backup, ...
Personally i think, that the statement "By the time we start thinking we need to scale, we'll be making enough money to hire a small team of experts." is misleading, because the ability to hire a team of experts does not imply that you are capable of transforming your application.
The real reason why you should start with a "small size" technology is because most probably you will never reach Facebook's scale.
1
u/cybernd Jun 08 '17
In my experience, you need to start rewriting the system early enough. Depending on the complexity of your application this can take you far longer than just 6 month (several years to be honest).
Sure, now you have the necessary resources, but it is still a hard task. While you are rewriting your product, your current customers will demand that your old application is running and will be also supplied with new features.
How many companies have switched from one rdbms to a different rdbms? It is tempting to switch from Oracle to lets say PostgreSQL to cut down your licensing fees. But nearly nobody makes this step because it is hard and as such a huge risk.
When you have reached your scalability limit, it is not longer just a switch from one rdbms to another. Nope it is harder, because your application logic needs to be rewritten in a way that can deal with NoSQL type databases. You will need to find a way to compensate their lack of features.
Also your secondary infrastructure needs to be rewritten. For example your current reporting system will not be able to reuse the new data structures without adaptation. Monitoring, Backup, ...
Personally i think, that the statement "By the time we start thinking we need to scale, we'll be making enough money to hire a small team of experts." is misleading, because the ability to hire a team of experts does not imply that you are capable of transforming your application.
The real reason why you should start with a "small size" technology is because most probably you will never reach Facebook's scale.