1. A method comprising: maintaining a grid of mid-tier databases storing cache instances of elements from one or more backend data sources, wherein changes to said cache instances are propagated back to the one or more backend data sources; receiving requests to change data in a particular mid-tier database, said data belonging to particular elements in the one or more backend data sources; in response to each particular request of the requests: identifying a particular cache instance mapped to particular data indicated by the particular request; determining ownership information for the particular cache instance, wherein the ownership information indicates either: a) a mid-tier database to which the particular cache instance has been exclusively assigned, or b) that the particular cache instance is not yet stored in the grid; and waiting to change the particular data in the particular mid-tier database at least until the ownership information indicates that the particular database has exclusive ownership of the particular cache instance; wherein, for at least some particular requests of the requests, the ownership information is updated to indicate that the particular mid-tier database has been assigned exclusive ownership upon at least: determining that another mid-tier database in the grid stores the particular cache instance; causing any pending transactions relating to the particular cache instance at the other mid-tier database to be committed; transmitting the particular cache instance from the other mid-tier database to the particular mid-tier database; wherein the method is performed by one or more computing devices implementing the grid.