Spent maybe 200 hours on the game.
Reviewed and looked at how data is handled and think there's an issue with the current design, primarily with the way terraforming data is handled.
Take an example of a new world. There is no terraforming, no houses, no objects, just terrain area and the trees.
Now add a player, he goes around flattening land and digging mines.
As soon as he changes the world, this data is persisted on the database side. All these changes has to be persisted because the events are replayed on server start up as well as patched to each client when they connect.
The game deployment contains the base world data, and by design, it seems that these changes to the world has to be applied in order for the client and server to be in sync with what the current state of the world is.
Also corruption of the world data is very possible. As is the case of the server not being able to render certain terrain areas. Basically if the number of changes recorded on one of the patch table doesn't line up with the sum total of those in terrain blocks, the server will not render the data for that area of the map, resulting in a empty zone with nothing rendered but the ground.
Conceptually, I understand the need for this, but thinking more in long term servers. This may not scale well in terms of design for larger scale. With a max population server of 64 that's usually full, over the period of weeks, the total number of terraforming changes grows very fast.
I would suggest not accessing and sending all this data to client, rather base it on proximity of the player in relation to the terrain blocks.
Currently the world is chunked into 9 terrain blocks(3x3). If you slice the terrain block smaller, the data needed to be accessed and sent will be smaller. Only send the data for the terrain block the player is located in. This will reduce the load time on connect also reduce the load when player travels to adjacent blocks. Server side, this may not scale, unless you cluster servers each assigned to certain blocks, you are probably already doing this for the MMO, since that is much larger and will have many more players.