Help with setting up a persistent world

I’m working on a brief project to set up a persistent world. The main thing is that when you join the game initially, you’ll be presented with a “server list” made up of various places connected to the game - like realms, for example. I think that initial part will be relatively easy enough to implement.

However, each “realm” will need to be a persistent world, with the ability to save it and be able to bring back that persistent world if the server were to restart for whatever reason. There would only be a single server per realm - this doesn’t need to be cross-server for each realm.

That being said, after some browsing on the forums, I have come across two ways:
1. Datastores. Saving everything and the placement of objects and whatnot via a datastore, and then loading them back into the game on server start.
2. AssetService:SavePlaceAsync. From what I understand, this creates a place template that you could theoretically access later and upload at the server’s start.

I am curious which method is realistically, ultimately better. I have seen multiple people say to use SavePlaceAsync, and others say don’t do that but instead just use datastores. Are there any notable advantages or disadvantages to each system, or best case scenarios / uses? Which do you think I ought to choose?

You should certainly use DataStores since then you can control exactly what gets saved. Most likely you do not need to save everything in the game, and if you did it would inevitably cause difficult bugs as different objects in each game start to build up or get saved when they shouldn’t.