Ive noticed some behaviors on this game and design traces that seens to increase way too much the load on the server.
First: too much GUI events depending on server communication. I seens that every single time i right click on an object or item it must check with the server. Most online games dont do this. The client software do this checking on what options are available by using some kind of cache if the item is known and then when the player gives the final command, the client sends the request to the server. This wont be possible to implement for EVERYTHING, like trees, where there will be still a check for if the tree still have apples, bough etc, but for most stuff with static action sets, would save tons of server load.
Second: Too much stuff that saves states for too long. Baskets lasting like a week or more on outside, construction signs that never seens to decay, logs, tree stumps. A system for the construction signs that would work something like 2 days with no activity like addition of material nor building and the sign is gone would spare the server. And there are TONS of construction signs out there due to the mechanics of shooting. Or you could implement some kind of blocking that would use only one branch, so you wouldnt have to change the mechanics and there wouldnt be people using this sign exploit neither. Maybe a block that would block the same way a 1x1 sign do but wouldnt have to ask the player for the material, it would automatically use the lowest level branch available on inventory, nor building and a right click on it would give the branch back and vanish the block.This would, at the same time, make people stop using signs, because would require less effort but at the same time you wouldnt have to implement a decay on signs, just make this item decay for good on a couple of hours.
Third: server side walking. A system that would require only the client informing the destiny instead of every single step would spare the server too. The client wouldnt have a precise response, but it takes too much of performance working the way it does currently.
Basically, if you dont want to spend a million dollars on hardware that have what it takes to run the server software with a couple of thousands of players online, it must relay less on server-side behavior. Yes, it makes the game more vulnerable to hacks, but this can be balanced, like doing a position check every couple of seconds to see if the player isnt speedhacking and stuff like that.
Any doubts on what i meant, feel free to ask.