1. A method implemented at least in part by a computer, the method comprising: from a requestor, receiving a request for access to a database, the database being accessible via a primary node of a database cluster and one or more secondary nodes of the database cluster; receiving an intent associated with the access, the intent indicating whether the requestor seeks to potentially write to the database; based on the intent, determining whether the primary node or one of the secondary nodes are to provide the access to the database in response to the request; if the intent indicates that the requestor seeks to potentially write to the database, providing access to the database via the primary node; and if the intent indicates that the requestor does not seek to potentially write to the database, in a response to the request, sending an identifier of a secondary node to the requestor via which the requestor is allowed to access the database and, in the response, sending caching data to the requestor that indicates a time period during which the requestor can cache and use the identifier of the secondary node, wherein sending an identifier of a secondary node via which the requestor is allowed to access the database comprises sending the identifier and identifiers of others of the one or more secondary nodes in an ordered list, the ordered list indicating an order in which to attempt to access the database via the one or more secondary nodes, where the order in which to attempt to access the database via the one or more secondary nodes is determined by a failover algorithm utilizing availability data to indicate availability of one or more secondary nodes.