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

Kafka Streams breaks EOS with remote state stores

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

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • streams

    Description

      Currently in Kafka Streams, exactly-once semantics (EOS) require that the state stores be completely erased and restored from the changelog from scratch in case of an error. This erasure is implemented by closing the state store and then simply wiping out the local state directory. This works fine for the two store implementations provided OOTB, in-memory and rocksdb, but fails when the application includes a custom StateStore based on remote storage, such as Redis. In this case Streams will fail to erase any of the data before reinserting data from the changelog, resulting in possible duplicates and breaking the guarantee of EOS.

      Attachments

        Issue Links

        Activity

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

          People

            Unassigned Unassigned
            ableegoldman A. Sophie Blee-Goldman

            Dates

              Created:
              Updated:

              Slack

                Issue deployment