Kafka Source Connector - `output.schema.value` not registering namespace

Hi all,
We’re using the source connector with Avro as schema format, it seems that the output.schema.value does not register the namespace property (We modified the default schema and added namespace).

This creates problems for us with deserialization in our Kotlin consumers.

Can you please assist? Thanks!

1 Like

Hi @Sason_Braha,

I’m not sure exactly what you want to achieve in the end and what your actual problem on the consumption side (Kotlin consumer) is.

In case you’re referring to the avro schema of the source connector which is not making use of the namespace field, what would you want/need it to contain in your case? The thing is, there are different ways to work with the namespace field of Avro. It would be helpful if you can provide a concrete example to better understand your question. Thanks in advance.

Hi @hpgrahsl, thank you.
I’ll elaborate.

We took the default schema from the source connector documentation under output.schema.value and modified it as following:

  • Adding namespace
  • Renaming ChangeStream to MongoSourceChangeEvent

Here’s our schema: https://gist.github.com/SasonBraha/510e2f1a3c0d1793bd41deb4d808fd08.

We use the schema above in output.schema.value. When the schema is registered by the connector in the schema registry - the namespace field is not included.

This creates a problem for us in Kotlin, where we can’t include namespace in the import because deserialization will fail, instead of:
import com.company.common.avro.MongoSourceChangeEvent

We are forced to remove the namespace from the schema and import it without namespace (the schema being registered is also being used to auto generate Avro classes) :
import MongoSourceChangeEvent.

We want to have a proper namespace for our auto generated classes and currently this issue prevents us from doing so.