diff --git a/checkstyle/suppressions.xml b/checkstyle/suppressions.xml
index 33b68dd39fd..889379250c1 100644
--- a/checkstyle/suppressions.xml
+++ b/checkstyle/suppressions.xml
@@ -25,7 +25,7 @@
files="(.*).java"/>
+ files="(.*).java"/>
diff --git a/client/src/main/java/io/confluent/kafka/schemaregistry/client/CachedSchemaRegistryClient.java b/client/src/main/java/io/confluent/kafka/schemaregistry/client/CachedSchemaRegistryClient.java
index 5304ee6b0ae..6f6a30b5d9d 100644
--- a/client/src/main/java/io/confluent/kafka/schemaregistry/client/CachedSchemaRegistryClient.java
+++ b/client/src/main/java/io/confluent/kafka/schemaregistry/client/CachedSchemaRegistryClient.java
@@ -19,6 +19,7 @@
import com.google.common.base.Ticker;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
+import com.google.common.collect.ImmutableMap;
import io.confluent.kafka.schemaregistry.client.rest.entities.requests.RegisterSchemaRequest;
import io.confluent.kafka.schemaregistry.client.rest.entities.requests.RegisterSchemaResponse;
import io.confluent.kafka.schemaregistry.utils.QualifiedSubject;
@@ -72,6 +73,8 @@ public class CachedSchemaRegistryClient implements SchemaRegistryClient {
private final Map> idToSchemaCache;
private final Map> schemaToVersionCache;
private final Map> versionToSchemaCache;
+ private final Cache latestVersionCache;
+ private final Cache latestWithMetadataCache;
private final Cache missingSchemaCache;
private final Cache missingIdCache;
private final Cache missingVersionCache;
@@ -198,6 +201,25 @@ public CachedSchemaRegistryClient(
this.restService = restService;
this.ticker = ticker;
+ long latestTTL = SchemaRegistryClientConfig.getLatestTTL(configs);
+
+ CacheBuilder