Hello,
I have reported this issue [1] about upgrading from Pulsar 2.7 to 2.8.
More information is on the ticket, but the short version of the story is
that
in Pulsar 2.8 we introduced a breaking change in the Schema API, by
switching SchemaInfo from a class to an interface.

This leads to an IncompatibleClassChangeError  when you have a Function or
a Connector that is using Schema.JSON(Pojo.class) and you upgrade your
Pulsar cluster (the functions worker pod for instance) from Pulsar 2.7.x to
Pulsar 2.8.0.

The bad problem is that you cannot upgrade Pulsar without interrupting the
service and coordinating with the upgrade of the Functions.
Your functions need to be recompiled against the Pulsar 2.8 API and
deployed again in production.

I have tried to move back SchemaInfo to an "abstract class" but without
success, because then you fall into errors.

I am not sure there is a way to provide a good "upgrade path" for
Functions/IO users.

If we do not find a way we have to document the upgrade in the official
Pulsar Documentation.

We must do our best to prevent users from falling again into this bad
situation.

Any suggestions or thoughts ?

Regards
Enrico

[1] https://github.com/apache/pulsar/issues/11338

Reply via email to