Thanks to the astonishing growth of the internet, having millions of users is no longer a dream for new applications. It used to take applications years to get more than a hundred thousand users, let alone millions. But nowadays it’s not very unusual for applications to attract millions of users in couple of months (or even in a few days). So that, being prepared for this huge number of users and having an effective structure for dealing with this large numbers is essential for designing social applications. After all, nothing kills an application’s growth more than being down for a couple of days (or even a few hours).
Therefore we have designed our application with the scalability issue in mind. Scalability issues that we have considered are in two categories of technical issues and development issues.
The main issue that we have investigated in the technical issue is the issue of database. We have decided that MySQL is an effective DBMS for starting the application and gaining the first few thousands users. However, we are aware that as our user base grow beyond those numbers, MySQL becomes less suitable. Therefore we have decided to move from Relation database management solutions to database systems which offer eventual consistency, at that time.
The development issue that we have considered is that when we attract more users to our system, we would need more programmers to work on the application and develop it. Therefore we have used standard development techniques in order to minimise the effort the new programmer’s effort to get to know the system.