Original post here
To provide a service like Board Game Arena, we need a lot of different service pieces that must work together. For example, you need a service to keep all the datas about players and games (the "database"), you need a service to host the game tables (the "games service"), you need a service to make sure everyone is notified in realtime when something happens on the website (the "realtime service"), a service to allow you to find a table to play (the "lobby"), and so on ...
Board Game Arena is growing for the 10 past years, and little by little we made the different pieces evolved so they can "scale", ie they can be able to host more and more players. To do that, we made our services evolves so they can be distributed, which means "can be run on several servers". This way, it is easy to scale up the service: you just have to buy and install more servers
A good example is the "games services". We you have a game in progress, you are playing in one of our 5 game servers (1 for the turn based games, 4 for the realtime games). Our game service is distributed for years, and it works very well. Thanks to that, it was quite easy for us to handle the recent traffic, and only few of you are getting problems when they are into a game.
However, some pieces of Board Game Arena were not distributed until now. And they were not because there were running fine so it was not a priority for us. The Covid situation and the very high traffic totally changed the situation.
Our "realtime service" was not distributed, but we were planning to distribute it in the near future. We just accelerated the process and - even it took us some time - it was not really an issue to upgrade the capacity of this service.
So where is the Very Big Problem. The very big problem we have is the Board Game Arena "meta" website, the one which contains the lobby and allow you to find opponents to play, and manage everything that happened before and after a game. This component is quite hard to distribute, because as you can imagine when you want to make the players meet themselves you need to have all players at the same place.
As a consequence, it is not distributed, and considering our average growth it was not planned to be distributed until 1 year or 2. Because it is not distributed, buying more servers is useless. Because of the emergency, we bought the most powerful available server to host it, and this is how we manage to go up to 16k-18k simultaneous players.
You probably get the point: to go further this point, we need to make it distribuable. It means changing the way many little and big things are working, so it means software development.
For 2 weeks, we are receiving a lot of support from all of you: thanks a lot for this. A lot of you are also advertising for our Premium membership in order to help us to increase the service capacity, and this is really nice from you. However, because we need to change many things on our software in a very short period of time, what we need the most at now is ... time.
So please be patient: in 2 weeks, we increased the capacity from 5.000 simultaneous players to 16k-18k. It won't take several weeks for us to increase this capacity again, but it may take several days before the next capacity increase. We know this is difficult to play on BGA these days, we know that sometimes our updates are making the service unresponsive, but it is going to get better and better.
Thanks for making BGA so popular, and see you soon with (hopefully) good news.