class AvroTurf::CachedConfluentSchemaRegistry
Caches registrations and lookups to the schema registry in memory.
Public Class Methods
new(upstream, cache: nil)
click to toggle source
Instantiate a new CachedConfluentSchemaRegistry
instance with the given configuration. By default, uses a provided InMemoryCache to prevent repeated calls to the upstream registry.
upstream - The upstream schema registry object that fully responds to all methods in the
AvroTurf::ConfluentSchemaRegistry interface.
cache - Optional user provided Cache object that responds to all methods in the AvroTurf::InMemoryCache
interface.
# File lib/avro_turf/cached_confluent_schema_registry.rb, line 14 def initialize(upstream, cache: nil) @upstream = upstream @cache = cache || AvroTurf::InMemoryCache.new end
Public Instance Methods
check(subject, schema)
click to toggle source
# File lib/avro_turf/cached_confluent_schema_registry.rb, line 27 def check(subject, schema) @cache.lookup_data_by_schema(subject, schema) || @cache.store_data_by_schema(subject, schema, @upstream.check(subject, schema)) end
fetch(id)
click to toggle source
# File lib/avro_turf/cached_confluent_schema_registry.rb, line 31 def fetch(id) @cache.lookup_by_id(id) || @cache.store_by_id(id, @upstream.fetch(id)) end
register(subject, schema)
click to toggle source
# File lib/avro_turf/cached_confluent_schema_registry.rb, line 35 def register(subject, schema) @cache.lookup_by_schema(subject, schema) || @cache.store_by_schema(subject, schema, @upstream.register(subject, schema)) end
subject_version(subject, version = 'latest')
click to toggle source
# File lib/avro_turf/cached_confluent_schema_registry.rb, line 39 def subject_version(subject, version = 'latest') return @upstream.subject_version(subject, version) if version == 'latest' @cache.lookup_by_version(subject, version) || @cache.store_by_version(subject, version, @upstream.subject_version(subject, version)) end