1. A method comprising: managing availability of a backend database cluster by: managing availability of copies of a backend database stored in a plurality of persistent storage systems, and managing availability of one or more backend database servers, executing on one or more backend computing devices, that directly read from and write data to the copies of the backend database; managing availability of a mid-tier database cluster by ensuring that copies of a mid-tier database are resident in volatile memories at one or more mid-tier computing devices; wherein the one or more mid-tier computing devices are different from the one or more backend computing devices; wherein the mid-tier database caches 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 cached in the mid-tier database; wherein the copies of the mid-tier database are databases from which one or more mid-tier applications, executing at the one or more mid-tier computing devices, directly read from and write data to, while the copies of the mid-tier database are resident in the volatile memories; wherein managing the availability of the backend database cluster and managing the availability of the mid-tier database cluster are performed concurrently by a cluster manager implemented by one or more computing devices.