Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-12313

Consider deprecating the default.windowed.serde.inner.class configs

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0
    • streams

    Description

      During the discussion of KIP-659 we discussed whether it made sense to have a "default" class for the serdes of windowed inner classes across Streams. Using these configs instead of specifying an actual Serde object can lead to subtle bugs, since the WindowedDeserializer requires a windowSize in addition to the inner class. If the default constructor is invoked, as it will be when falling back on the config, this windowSize defaults to MAX_VALUE. 

      If the downstream program doesn't care about the window end time in the output, then this can go unnoticed and technically there is no problem. But if anything does depend on the end time, or the user just wants to manually read the output for testing purposes, then the MAX_VALUE will result in a garbage timestamp.

      We should consider whether the convenience of specifying a config instead of instantiating a Serde in each operator is really worth the risk of a user accidentally failing to specify a windowSize

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            sagarrao Sagar Rao
            ableegoldman A. Sophie Blee-Goldman
            A. Sophie Blee-Goldman A. Sophie Blee-Goldman
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment