holixon / axon-avro-serializer

Provide support for axon event serialization via apache avro.
https://www.holixon.io/axon-avro-serializer/snapshot/
Apache License 2.0
12 stars 1 forks source link

Apicurio Registry Plugin and Adapter Unable to Resolve Avro Schema(s) #279

Open KahigaKiguru opened 2 years ago

KahigaKiguru commented 2 years ago

Hello again,

There's a newer issue concerning the Apicurio schema registry adapter and plugins provided as part of the project.

Screenshot 2022-11-15 at 16 38 45

The issue seems to originate from the Schema Registration Component. It uploads and versions my schemas as it should; however, it fails in applying the appropriate schema Id to the Avro Schema in my Apicurio Registry instance...

Screenshot 2022-11-15 at 16 44 46

So, while deserialising the axon message payload, the adapter looks up an artefact of a specific serialVersionUID, first from the cache, then the schema registry (if unavailable). The error now arises since the Schema Id in this instance is TestEvent while the adapter looks up a schema of id:: 6729430080489649277

This error also occurs in the axon-Avro-server-schema-registry-apicurio-plugin installed on the axon server instance as shown here...

Screenshot 2022-11-15 at 16 52 56

While Querying for events stored on the axon server, I get jumbled up records...

Screenshot 2022-11-15 at 16 55 14

I have tried looking for misconfiguration errors on my end, but everything I have implemented follows the documentation (https://www.holixon.io/axon-avro-serializer/snapshot/reference/index.html) to the letter.

Kindly get back to me as soon as possible on possible solutions.

Kind Regards, Kahiga wa Kiguru.

zambrovski commented 2 years ago

Hi,

I think there is still a problem in the Apicurio adapter. Apicurio changed there API and we just are not supporting it for the moment.

Is there a possibility for you, to use another registry for the moment? I'm not trying to talk around the problem - it is definitely needs a fix, but we supplied several alternatives how the registry adapter can be implemented. For simplicity, you could just use a JPA based approach or a classpath registry, until we solve this?

Cheers,

Simon

KahigaKiguru commented 2 years ago

I'm afraid your suggestion regarding using a temporary schema registry will not meet my particular use case. Multiple teams rely on the apicurio schema registry as our distributed source of truth. Changing schema registry providers will disrupt our workflows drastically. I suggest we all work together to solve this issue as soon as possible. Best, Kahiga Kiguru.

KahigaKiguru commented 2 years ago

How best can I help?