confluentinc / schema-registry

Confluent Schema Registry for Kafka
https://docs.confluent.io/current/schema-registry/docs/index.html
Other
2.22k stars 1.11k forks source link

Feature: enable support for alternative schema stores #308

Open markdav opened 8 years ago

markdav commented 8 years ago

The schema registry uses kafka as the schema store, which makes sense as it's geared towards environments with Kafka in-situ. However it seems that versioning of avro schemas as a service is not fundamentally related to kafka but is a problem space in its own right. It might be useful to be able to configure the schema registry against alternative stores in the following situations:

Stores which might be useful to add might include

ewencp commented 8 years ago

@markdav I think the necessary interface is already there -- io.confluent.kafka.schemaregistry.storage.Store is the interface, KafkaStore is the only "real" implementation currently, and InMemoryStore is used both in KafkaStore's implementation and for testing. I think the biggest issues would simply be around configuration and then how we'd handle additional implementations (given the number of options, could be in separate repos and you just have to get the jars on the classpath to instantiate the desired store type). In the core schema registry code, making this pluggable is probably actually a pretty small configuration-focused patch.