Also, because the database is a value. You can easily do mock data and isolated transactions locally to experiment and test. This makes some things easier.
Another cool thing is how you do cross database queries by simply passing multiple databases to a function. It will pull in the subset of the dataset needed to compute the query result. It's that easy to do.
It's not good at dealing with high volume transactions (a lot of writes) it's not too bad but it's not built for that primarily.