Amazon Web Services (AWS) is very popular in the market, and the ZODB supports it, but AWS is not the best choice for districuted python objects. First of all, S3 only gives you a two level hierarchy of objects Buckets, and objects, ZODB gives you a tree of objects, much easier to manage. Secondly Amazon architecture is not publically available, hard to reason about it. Third Amazon cloud front only caches the objects after the first call. And then times them out. What you need is something allows you to automatically distribute the objects when a new versin is released. And finally the Amazon reliability statistics are great, but that is for a single object. A real application has multiple objects, and so reliability may be worse for the entire application than for any one object.
Disclaimer. I have not used AWS, and I could be totally wrong. This is just my opinion. Please let me know if I got it wrong.
Relational databases are great at storing tables. ZODB is great at storing trees, even graphs. Let us focus on trees today. Have you ever tried choosing a county in Skype? You have to choose from a list of 130 countries. It is unnatural. Much easier to use a tree to find a country. Europe->Central Europe-> Poland. I think that more web applications should use trees. And in the python world, the natural place to store a tree is using the Persistent classes provided by the ZODB.
Building your application in Persistent Python has significant advantages over building it on top of a relational database. This web site is based on a tree of objects. See how fast it loads. And every website needs trees to manage their complexity. A basic lesson of human factors, is no more than seven items in any group. Have you ever tried to select from a list of 130 countries on the web? You have to scan it to find your country. Very easy to replace that with a user-friendly tree when using Persistent Python objects. And of course every organization has an org chart!
PostgreSQL is the best of the databases. Really very good. None of my professional colleagues have any complaints about it. But it lacks four much needed concepts, the persistent graph, pickling trees, dynamic schemas and application specific concurrency control. These are all needed to minimize develpopment and response time. And of courses don't even think of trying to include PostrgeSQL in a client application such as Diaspora. But you could easily include ZODB in a python client application.
An interesting article by someone who I guess did not like MongoDB.