Blizzard has shared a lengthy post on the official Diablo II: Resurrected forum that provides insight on why the remaster of its hack-and-slash classic has been suffering from so many connectivity problems.
Part of the reason seems to be that Blizzard underestimated the amount of people that would be playing the game; the company explained that significant surges in traffic was one of the reasons why the servers went down last weekend and the following days. The issue was made worse by other factors such as updates meant to enhance performance, which inadvertently ended up contributing to an overload of the global database that holds all character information and progress.
Diablo II: Resurrected was also affected by other unforeseen issues, such as problems with the way the database was being backed up. From Blizzard:
[…] our backup database was erroneously continuing to run its backup process, meaning that it spent most of its time trying to copy from the other database when it should’ve been servicing requests from servers. During this time, we discovered further issues, and we made further improvements–we found a since-deprecated-but-taxing query we could eliminate entirely from the database, we optimized eligibility checks for players when they join a game, further alleviating the load, and we have further performance improvements in testing as we speak. We also believe we fixed the database-reconnect storms we were seeing, because we didn’t see it occur on Tuesday.
Then Tuesday, we hit another concurrent player high, with a few hundreds of thousands of players in one region alone. This made us hit another incident of degraded database performance, the cause of which is currently being worked on by our database engineers.
Blizzard says that it is attempting to address Diablo II: Resurrected’s ongoing server issues via rate limiting, login queue creation, and breaking out critical pieces of functionality into smaller services. Blizzard has clarified that rate limiting is only a temporary fix, while login queue creation should allow the company to address problems in the game before they bring it down completely.