This morning, I did a more thorough reading of the design outline that comes with Ape, and I think that it could satisfy every element on my list - except one. There's still the issue of querying the data. One of the reasons we went with a relational database is the expressiveness of SQL, and the ability to tweak queries for even more performance gain. But, I'm thinking this might not be that big of an issue for one of the applications I'm dealing with, because the really complex reads are happening only on the public side of the site, and there are very very very few times when data is written to the database from the public side of the site. So I might be able to start migrating a lot of the back end to persistent objects backed by Ape serializers while keeping the optimizations and fancy queries intact for the front end of the site. The few places that actually write the data for the front end could be migrated fairly easily once the rest of the structure is in place.