You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Matt Allwood (Jira)" <ji...@apache.org> on 2022/12/20 16:51:00 UTC

[jira] [Created] (KAFKA-14537) Materialized with / as ordering issues

Matt Allwood created KAFKA-14537:
------------------------------------

             Summary: Materialized with / as ordering issues
                 Key: KAFKA-14537
                 URL: https://issues.apache.org/jira/browse/KAFKA-14537
             Project: Kafka
          Issue Type: Bug
          Components: streams
    Affects Versions: 3.3.1
         Environment: Java 17
            Reporter: Matt Allwood


I have found a couple of cases where using Materialized .with and .as in the wrong order can either remove your configured serdes, reverting to the default configured serdes, or remove the store name, reverting to the auto-generated Kafka store name.

This does not appear to affect .withKeySerde().withValueSerde pairs

My most recent example is using a simple Processor node followed by a toTable()
{code:java}
.process(new PreferenceFlatteningProcessor(PREFERENCE_FLATTENING_STORE_NAME),  PREFERENCE_FLATTENING_STORE_NAME)
                .toTable(
                        Materialized
                         .with(avroSerdes.commodityRegionValuesWithCLKeySerde, Serdes.Integer())
                         .as("flattenedUserPreferencesTable"))
 {code}
(apologies for formatting - it's difficult to see in JIRA)

Having the .as in the above resulted in toTable failing as it tried to use the default serdes rather than those provided. It was a confusing bug, as the error suggested that the issue was in my .process() code in serialising the record rather than in the following toTable().

As mentioned I have also encountered issues with the names going missing, but didn't raise that at the time, as it was an annoyance rather than crashing my application.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)