I am trying to integrate Spring Cloud Stream Schema Registry with MongoDB as the Schema Registry backend. I just want to know with the current implementation will this be feasible and what kinds of changes will be required to achieve this?
I have gone through the Spring Cloud Stream Schema Registry Core part and it seems lot of core changes needs to be done to achieve this.
2
Answers
MongoDB is not a one-size-fits-all database, regardless of how they market their product.
Besides, Confluent Schema Registry, or the native H2 database of the Spring Registry don’t require any extra infrastructure, if that’s your main concern. You could run the Confluent Registry directly on the brokers, in fact.
(I don’t think the H2 database is persistent, or will scale across nodes for high availability, so I wouldn’t personally pick it).
If you’re concerned about Confluent Licensing, there’s other options like Apicurio, or Aiven Karapace, or AWS Glue Registry…
The documentation is pretty explicit about your options of:
MongoDB is not "compatible" with any clients for those databases.
You need a Collection schema for Mongo that can support, at the very least
This can be built into a Kafka client library itself, it doesn’t have to be "plugged into" any Registry product; that’s primarily what all the Registries are providing – a native Kafka Serializer and Deserializer implementation around a simple REST or database client. (all mentioned options are open source, go take a look at implementation)
need not to do a lot of changes… check your schema registry is valid and recording in logs…if there is an issue in schema, just check all the exceptions case and it check the requirement of null or void…this should solve your problem