protected Client getClient(String apiKey) throws SQLException {
        Client client;
        synchronized (mutex) {
            client = clientCache.get(apiKey);
        }

        if (client == null) {
            client = super.getClientInternal(apiKey);
            synchronized (mutex) {
                if (client != null) {
                    clientCache.put(apiKey, client);
                }
            }
        }

        return client;
    }
Gets the client either from the cache or from ES.
@param orgId
@param clientId
@param version
gateway/engine/jdbc/src/main/java/io/apiman/gateway/engine/jdbc/CachingJdbcRegistry.java