1. A method comprising: managing the availability of copies of a backend database stored in a plurality of persistent storage systems; managing the availability of copies of a mid-tier database; wherein the mid-tier database stores one or more elements for which changes are propagated to the backend database; wherein the backend database comprises a subset of data that is not stored in the mid-tier database; wherein each step of the method is performed concurrently by a cluster manager implemented by one or more computing devices.