Release Notes - Kafka - Version 4.4.0

Below is a summary of the JIRA issues addressed in the 4.4.0 release of Kafka. For full documentation of the release, a guide to get started, and information about the project, see the Kafka project site.

Note about upgrades: Please carefully review the upgrade documentation for this release thoroughly before upgrading your cluster. The upgrade notes discuss any critical information about incompatibilities and breaking changes, performance changes, and any other changes that might impact your production deployment of Kafka.

The documentation for the most recent release can be found at https://kafka.apache.org/documentation.html.

New Feature

  • [KAFKA-19469] - Dead-letter queues for share groups
  • [KAFKA-19648] - KIP-1170: Unify cluster metadata bootstrapping
  • [KAFKA-19663] - kafka-broker-api tool should support to get controller api version
  • [KAFKA-20197] - Add headers support to StreamPartitioner
  • [KAFKA-20246] - Detection and handling of misrouted connections
  • [KAFKA-20524] - Initialization of share group offsets from a specific offset or a file
  • [KAFKA-20618] - Streams Group Topology Description Plugin
  • [KAFKA-20682] - Implement IQv2 for headers-aware state stores
  • [KAFKA-20683] - Add broker side custom assignors for "streams" groups
  • Improvement

  • [KAFKA-967] - Use key range in ProducerPerformance
  • [KAFKA-7493] - Rewrite test_broker_type_bounce_at_start
  • [KAFKA-13022] - Optimize ClientQuotasImage#describe
  • [KAFKA-13819] - Add application.server to Streams assignor logs when set
  • [KAFKA-14276] - Clarify java doc for ProcessorAPI init method and stateStore.approximateNumEntries()
  • [KAFKA-14412] - Transactional semantics for StateStores
  • [KAFKA-15630] - Improve documentation of offset.lag.max
  • [KAFKA-16937] - Consider inlineing Time#waitObject to ProducerMetadata#awaitUpdate
  • [KAFKA-17164] - Consider to enforce application.server : format at config level
  • [KAFKA-17251] - KafkaStreams.cleanup() semantics unclear
  • [KAFKA-18149] - Docs improvement for 3.9
  • [KAFKA-18628] - Deprecate broker.id
  • [KAFKA-18766] - Docs: Make usage of allow.everyone.if.no.acl.found config clearer
  • [KAFKA-18812] - Improve new consumer API errors upon background thread failures
  • [KAFKA-18951] - Validate client code and documentation in examples/ directory
  • [KAFKA-19117] - Client Throttling Log messages should be of log level - WARN (Java client)
  • [KAFKA-19193] - Rack-aware partitioning for Kafka Producer
  • [KAFKA-19566] - Deprecate ClientQuotaCallback#updateClusterMetadata
  • [KAFKA-19768] - `ci-complete` needs to work with active branches after the JDK is updated
  • [KAFKA-19893] - Reduce tiered storage redundancy with delayed upload
  • [KAFKA-20032] - KIP-1265 : Mechanism for automatic detection of internal API usage
  • [KAFKA-20072] - Don't generate IDs with hyphens
  • [KAFKA-20088] - CIDR-based Host Patterns for ACLs
  • [KAFKA-20119] - Clarify that `Consumer#unsubscribe` does not trigger auto-commit
  • [KAFKA-20182] - Upgrade gradle to 9.3.x
  • [KAFKA-20196] - Deprecate Yammer-based metrics in `GroupCoordinatorMetrics` and add equivalent Kafka Metrics
  • [KAFKA-20215] - add integration test for cordoning folders
  • [KAFKA-20252] - Migrate clearYammerMetrics to TestUtils
  • [KAFKA-20316] - Rewrite AddPartitionsTest with ClusterInstance
  • [KAFKA-20344] - upgrade jetty to 12.0.34
  • [KAFKA-20354] - Add missing Control Batch types in documentation
  • [KAFKA-20359] - Consider using `docker.io/library/eclipse-temurin:21-jdk-jammy` instead
  • [KAFKA-20362] - Rescue the Tired Reviewer: Auto-fill PR Reviewers
  • [KAFKA-20363] - flaky testIdleTimeCallback
  • [KAFKA-20368] - Use LinkedHashMap for deterministic metric tags order in RLMExpirationTask
  • [KAFKA-20375] - Unify method signature for retrieving config names across config classes
  • [KAFKA-20377] - ducker-ak does not support passing additional Docker build arguments
  • [KAFKA-20378] - ducker-ak container memory limit is hardcoded
  • [KAFKA-20379] - ducker-ak has no option to skip the gradlew systemTestLibs build step
  • [KAFKA-20395] - Support unregistering controllers
  • [KAFKA-20403] - InterruptedException swallowed without restoring thread interrupt flag in multiple classes
  • [KAFKA-20405] - Remove numClassicGroupsTimelineCounter
  • [KAFKA-20408] - Remove ConsumerMetrics
  • [KAFKA-20419] - Add SASL docker compose examples for single-node and multi-node clusters
  • [KAFKA-20430] - Add configuration to control internal topic creation in Kafka Connect
  • [KAFKA-20444] - Align TxnOffsetCommit API with OffsetCommit API (KIP-1319)
  • [KAFKA-20452] - Avoid creating unnecessary empty batches in LogCleaner below the High Watermark
  • [KAFKA-20531] - ducker-ak: Add --clean-build option to replace REBUILD env var
  • [KAFKA-20543] - Drop RocksDB offsets column family on clean shutdown when downgrading from 4.3
  • [KAFKA-20546] - Lazily call generateNewClientId when handling GetTelemetrySubscriptionsRequest
  • [KAFKA-20550] - Rename OffsetsUtils to OffsetManager (or OffsetResetService)
  • [KAFKA-20551] - Remove unnecessary generics from TxnOffsetCommitResponse, OffsetCommitResponse, and OffsetDeleteResponse
  • [KAFKA-20553] - Eliminate the dependencies on "sourceSets.test.output"
  • [KAFKA-20575] - Add onPartitionsLost support for MockConsumer
  • [KAFKA-20585] - Share Fetch latency metric incorrectly updated during ShareAcknowledgeResponse
  • [KAFKA-20592] - Fix several typos in Streams and upgrade documentation
  • [KAFKA-20610] - Abstract ReplicaManager dependency from SharePartition
  • [KAFKA-20652] - Improve/Fix java docs
  • [KAFKA-20664] - Improve docs about "max compaction lag", "segment.ms" and "segment.size" with regard to active segment rolling
  • [KAFKA-20713] - Review level for client-side log on fetch session evicted
  • [KAFKA-20736] - Improve leadership change handling in ShareConsumer
  • [KAFKA-20761] - Add client logs for consumer group configs defined on the broker
  • [KAFKA-20778] - Improve classic consumer rack-aware double rebalance on replica bounce
  • [KAFKA-20783] - Integrate async log reader fetch in DelayedShareFetch
  • [KAFKA-20804] - [Java-client] Reduce lock contention in ProducerMetadata#add
  • [KAFKA-20813] - docker_build_test.py doesn't like podman
  • [KAFKA-20857] - Use Java 25 in Docker Images
  • [KAFKA-20881] - System tests fail to load connect-file plugin due to javadoc.jar conflict
  • [KAFKA-21175] - Update jackson to 2.21.7
  • Bug

  • [KAFKA-4320] - Log compaction docs update
  • [KAFKA-9914] - Mirror Maker 2 creates heartbeats kafka topics recursively
  • [KAFKA-14597] - [Streams] record-e2e-latency-max is not reporting correct metrics
  • [KAFKA-14648] - Do not fail clients if bootstrap servers is not immediately resolvable
  • [KAFKA-15768] - StateQueryResult#getOnlyPartitionResult should not throw for FailedQueryResult
  • [KAFKA-15828] - Protect clients from broker hostname reuse
  • [KAFKA-15918] - Flaky test - OffsetsApiIntegrationTest.testResetSinkConnectorOffsets
  • [KAFKA-17871] - Source task source offset reads can block herder task cancellation
  • [KAFKA-18810] - Flaky test: ClientIdQuotaTest.testQuotaOverrideDelete
  • [KAFKA-20009] - Top level pages should include short descriptions for each section
  • [KAFKA-20050] - Add syntax highlighting for code blocks and commands in getting started
  • [KAFKA-20089] - clients - update javadocs -- while topic being created in background
  • [KAFKA-20114] - Fix race between requestInFlight and backoffDeadlineMs in RPCProducerIdManager causing premature retries
  • [KAFKA-20187] - AsyncKafkaConsumer does not clear endOffsetRequested flag on failed LIST_OFFSETS calls
  • [KAFKA-20198] - StickyPartitionAssignor with group protocol classic is not acting sticky
  • [KAFKA-20232] - KafkaConsumer#commitAsync throws unexpected WakeupException in awaitMetadataUpdate()
  • [KAFKA-20253] - High CPU loop on consumer after failed re-authentication
  • [KAFKA-20312] - KafkaConsumer poll may happens NullPointerException
  • [KAFKA-20337] - Refactor GroupConfig to be less confusing
  • [KAFKA-20346] - LogCleaner#cleaners should be thread-safe
  • [KAFKA-20347] - Fix metric leak and JMX tag order in ShareCoordinatorMetrics
  • [KAFKA-20409] - Don't expose internal group configs unless they are user-defined.
  • [KAFKA-20416] - RocksDB loses entries during broker patches.
  • [KAFKA-20434] - Consumer group does not recompute assignment when static members rejoin with different assignor
  • [KAFKA-20440] - PEM certificate support should not depend on PKCS12
  • [KAFKA-20442] - Consumer/Share/Streams group assignment epoch is not updated when the last member leaves
  • [KAFKA-20448] - Docker image build fails with --image-type=jvm and --kafka-archive
  • [KAFKA-20449] - OffsetFetcherUtils.updateSubscriptionState logs at WARN for benign race condition during rebalance
  • [KAFKA-20450] - SafeObjectInputStream uses denylist based approach
  • [KAFKA-20456] - Task not found in StateUpdater throwing an exception and causing unnecessary restoration
  • [KAFKA-20464] - Linking stores using ConnectedStoreProvider causes corrupt topology
  • [KAFKA-20519] - Broken links from the Kafka configuration reference
  • [KAFKA-20533] - ShareFetch returns UNKNOWN_SERVER_ERROR when topic is deleted during active share consumption
  • [KAFKA-20541] - Duplicate generated folder in kafka-site
  • [KAFKA-20545] - Flaky tests in MirrorConnectorsIntegrationSSLTest
  • [KAFKA-20555] - JaasBasicAuthFilter should use jakarta.annotation
  • [KAFKA-20563] - Flaky test ShareConsumerRackAwareTest.testShareConsumerWithRackAwareAssignor
  • [KAFKA-20569] - Doc doesn't have upgrading steps
  • [KAFKA-20570] - Catch RuntimeException in ConsumerProtocol deserialization in group coordinator
  • [KAFKA-20598] - Prevent polling unassigned consumer during ConsumerTask shutdown
  • [KAFKA-20601] - ConsumerGroup static member rejoin can fail with GroupMaxSizeReachedException at max size
  • [KAFKA-20605] - upgrade gradle action to enable the CI
  • [KAFKA-20616] - Close-path leaks in RocksDBStore cause native memory growth that eventually leads to OOM
  • [KAFKA-20619] - ClusterTests may report Thread leak detected: Cleaner-0, Cleaner-1
  • [KAFKA-20634] - Spurious HighWatermarkUpdate failed errors in the group coordinator after partition leadership change
  • [KAFKA-20635] - Spurious "Writing records..." failed errors in the group coordinator after partition leadership change
  • [KAFKA-20638] - Use Locale.ROOT in ConsumerGroupCommand.toLowerCase()
  • [KAFKA-20640] - Consumer group accepts new classic members when migration policy is disabled
  • [KAFKA-20659] - MirrorMaker Checkpoint and Heartbeat records can accept unsupported versions when assertions are disabled
  • [KAFKA-20662] - Proper error code for malformed request during online migration
  • [KAFKA-20663] - KIP-1035: stale persisted changelog offset causes OffsetOutOfRangeException/TaskCorruptedException on restart
  • [KAFKA-20673] - AdminClient partition-leader APIs hang when a cached leader has left the cluster
  • [KAFKA-20690] - PersisterStateBatchCombinerTest silently skips 23 of 24 cases
  • [KAFKA-20694] - Fix share coordinator readState leaderEpoch -1 sentinel fencing
  • [KAFKA-20699] - TopologyTestDriver.getStateStore corrupts the task's record context
  • [KAFKA-20700] - AllowedPaths should resolve symlinks before validating paths against allowed.paths
  • [KAFKA-20711] - Streams task restore-remaining-records metric never reaches 0
  • [KAFKA-20712] - TransactionLogMessageFormatter and TransactionLogMessageParser output numeric transactionStatus instead of state name
  • [KAFKA-20714] - Refactor KRaft API around message handling
  • [KAFKA-20719] - "Streams" group sticky assignor not sticky at startup
  • [KAFKA-20721] - Streams: "Task not found in the state updater. This indicates a bug." after a state updater remove times out during cold start rebalancing
  • [KAFKA-20726] - Don't reuse the BufferSupplier in kraft state machine
  • [KAFKA-20729] - RocksDBTransactionBuffer missing newBaseSnapshotIterator breaks trunk compile
  • [KAFKA-20732] - Data loss: tiered size-retention deletes in-retention data from both tiers after leader election when highestOffsetInRemoteStorage is unset (-1)
  • [KAFKA-20746] - NPE in MetadataCache#toCluster
  • [KAFKA-20749] - KStream-KStream outer/left join crashes under EOS with transactional state stores
  • [KAFKA-20751] - Cached connector plugin version validation failures lose available versions on repeated validation
  • [KAFKA-20753] - Transactional RocksDB store fails to reopen with transactional status marker in EOS
  • [KAFKA-20759] - testUnsubscribeDoesNotCommitOffsetsEvenWithAutoCommitEnabled hangs in closing
  • [KAFKA-20765] - AsyncKafkaConsumer: OffsetFetch retry on STALE_MEMBER_EPOCH can spin in dedup loop and never complete the application future
  • [KAFKA-20767] - [CVE-2026-54513] , [CVE-2026-54512] [jackson-databind] [2.21.2]
  • [KAFKA-20769] - ListDeserializer can silently deserialize a corrupted entry when the input is truncated mid-entry
  • [KAFKA-20773] - [CVE-2026-54515][jackson-databind]
  • [KAFKA-20777] - StagedMergeIterator throws IllegalStateException instead of InvalidStateStoreException when used after store close
  • [KAFKA-20779] - followup review on the merged KIP-1265 PR
  • [KAFKA-20780] - syncKafkaConsumer does not keep a fetch request pending on the broker, causing latency and throughput regressions vs the classic consumer
  • [KAFKA-20782] - IQ returns incorrect metadata when Streams protocol and N threads
  • [KAFKA-20786] - Build sometimes times out on streams tests
  • [KAFKA-20791] - Bump log4j to 2.25.5
  • [KAFKA-20798] - Add readOnly(IsolationLevel) to TimestampedWindowStoreWithHeaders and SessionStoreWithHeaders
  • [KAFKA-20802] - ClusterTestExtensions#afterEach throws NPE when a detected thread terminates before the leak report is built
  • [KAFKA-20805] - State directory cleaned prematurely under KIP-1035, forcing from-scratch restore
  • [KAFKA-20808] - StreamThread dies with fatal InvalidStateStoreException after TaskCorruptedException
  • [KAFKA-20815] - Security : [jline-remote-telnet] [3.30.4]
  • [KAFKA-20816] - Add CIDR support also into Authorizer.authorizeByResourceType
  • [KAFKA-20827] - StreamThread dies with IllegalStateException: Attempted to create an standby task that we already own during a standby/active recycle
  • [KAFKA-20828] - shouldClientThrottle() implemented incorrectly for some requests
  • [KAFKA-20829] - StreamThread floods logs with "Request joining group due to: Shutdown requested" during ▎ SHUTDOWN_APPLICATION under the classic protocol
  • [KAFKA-20831] - Cache SASL KafkaPrincipal for the lifetime of an authenticated connection
  • [KAFKA-20832] - Cordoned log dirs are not enforced when creating topics/partitions with explicit assignment
  • [KAFKA-20840] - Bump jetty to 12.0.37
  • [KAFKA-20842] - Bump lz4 to 1.11.1
  • [KAFKA-20843] - Custom consumer group assignors may silently use duplicate assignor names
  • [KAFKA-20845] - Consumer group downgrades can leave group in invalid state when classic group metadata is very large
  • [KAFKA-20846] - Streams TaskAssignor receives mutable nested collections in its GroupSpec
  • [KAFKA-20854] - A more obvious busy loop due to KIP-909
  • [KAFKA-20861] - Kafka Streams should handle corrupted assignment pro-actively
  • [KAFKA-20874] - SslFactory not closed after extracting SSLSocketFactory
  • [KAFKA-20877] - Streams task-level restore-rate and update-rate incorrect
  • [KAFKA-20885] - Incorrect IQ metadata in "streams" protocol
  • [KAFKA-20893] - KafkaStreams incorrectly reports task-offsets (ie state) for non-existing (previously owned) in-memory stores to the task assignor
  • [KAFKA-20894] - StreamsGroupDescription.toString throws NullPointerException when authorized operations are omitted
  • [KAFKA-20899] - StickyTaskAssignor not sticky for standby tasks ("streams" protocol)
  • [KAFKA-20900] - docker_sanity_test.py should not ignore "Error" count
  • [KAFKA-20919] - Document KIP-1301 metrics changes
  • [KAFKA-20933] - RocksDBStore.putAll bypasses the transaction buffer
  • [KAFKA-20939] - Client applications broken by DNS resolution failure behaviour change
  • [KAFKA-20977] - RemoteCopyLagSegments/RemoteCopyLagBytes report a phantom lag of 1 on low-throughput partitions (single-record segments)
  • [KAFKA-20979] - Potential data loss caused by time index truncation
  • [KAFKA-20982] - The docker compose in isolation mode does not set the sasl listeners to all brokers
  • [KAFKA-21004] - [CVE-2026-68497][jackson-databind]
  • [KAFKA-21025] - StreamsGroupHeartbeatRequest.Builder does not clear owned warm-up tasks when it negotiates request version 0
  • [KAFKA-21096] - SharePartition instances pending cleanup even when fenced
  • [KAFKA-21098] - RemoteDeleteLagSegments/RemoteDeleteLagBytes report a phantom lag that never drains after a leader→follower transition
  • [KAFKA-21106] - Share consumer leaks ShareCompletedFetch when two fetches for the same partition are merged before collection
  • [KAFKA-21173] - Consider adding `--no-parallel` to release.py to avoid multiple staging repositories being built
  • Task

  • [KAFKA-16263] - Add Kafka Streams docs about available listeners/callback
  • [KAFKA-18563] - move RaftClientTestContext xyzRpcVersion methods into RaftProtocol
  • [KAFKA-19404] - Connect's plugin.path documentation does not match behavior
  • [KAFKA-19686] - Trigger Docker image builds in release script
  • [KAFKA-19964] - API Versions Response returns minimum metadata version for finalized level when no quorum exists
  • [KAFKA-20145] - Improve consumer HB ack on unchanged target assignment
  • [KAFKA-20167] - Introduce CloseOptions.DEFAULT for Kafka Streams
  • [KAFKA-20169] - Support static membership for Kafka Streams with the streams rebalance protocol
  • [KAFKA-20223] - Extended I/O Metrics Collection
  • [KAFKA-20323] - Refactor test method to enable Mockito version upgrade
  • [KAFKA-20443] - Move RequestChannel Requests to server module
  • [KAFKA-20451] - Move RequestChannel Responses to server module
  • [KAFKA-20535] - Investigate potential improvements to async consumer CPU usage under low max.poll.records
  • [KAFKA-20565] - Flaky testAutoCommitSentBeforePositionUpdate
  • [KAFKA-20574] - SimpleConfigRepository in the storage module could be replaced by MockConfigRepository
  • [KAFKA-20633] - Update the default value of remote copy lag bytes
  • [KAFKA-20660] - Add guardrail to detect use of legacy ConsumerRecords constructor via nextOffsets()
  • [KAFKA-20681] - Consolidate heartbeat success path for consumer and shareConsumer
  • [KAFKA-20742] - Start offset for newly initialized share partitions should be 0
  • [KAFKA-20743] - Disallow negative leaderEpoch in readState and leaderEpoch/stateEpoch in writeState share coordinator.
  • [KAFKA-20787] - Implement KIP-1340: Expose Both Mapped Key and Stream Key in Streams-GlobalKTable Joins
  • [KAFKA-20891] - Mark unused "streams" protocol configs internal
  • [KAFKA-20903] - Revert public API changes from KIP-1238
  • [KAFKA-20936] - Bump lz4 to 1.11.2
  • [KAFKA-21123] - Update zstd-jni to 1.5.7-17
  • [KAFKA-21139] - Update Jetty to 12.0.39
  • Wish

  • [KAFKA-20730] - Remove spotless from streams-scala
  • Test

  • [KAFKA-13716] - add tests for `DeleteRecordsCommand` class
  • [KAFKA-15529] - Flaky test ReassignReplicaShrinkTest.executeTieredStorageTest
  • [KAFKA-17999] - Fix flaky DynamicConnectionQuotaTest testDynamicConnectionQuota
  • [KAFKA-18862] - Review testHeartbeatResponseOnErrorHandling duplicate logic in ShareHeartbeatRequestManagerTest
  • [KAFKA-19700] - Fix flaky DescribeStreamsGroupTest testDescribeStreamsGroupWithShortTimeout()
  • [KAFKA-20315] - Add test for single in-flight poll event logic in async/share consumer
  • [KAFKA-20417] - Create integration tests for KIP-1035 changes
  • [KAFKA-20558] - NPE in ClusterInstance.waitUntilLeaderIsElectedOrChanged causes flaky tests
  • [KAFKA-20727] - Update Kafka Streams system tests for transactional stores
  • [KAFKA-20733] - KafkaConsumerTest.fetchResponseWithUnexpectedPartitionIsIgnored passes for wrong reason with CONSUMER protocol
  • [KAFKA-20826] - EndToEndLatencyTest#testInvalidRecordHeaderValue does not cover the correct scenario
  • [KAFKA-20830] - speed up testFailToStartWhenInternalTopicsAreNotCompacted
  • Sub-task

  • [KAFKA-14228] - Support for nested structures: ValueToKey
  • [KAFKA-14487] - Move LogManager to storage module
  • [KAFKA-14588] - Move ConfigCommand to tools
  • [KAFKA-17689] - Migrate TieredStorageTestHarness to new test infra
  • [KAFKA-17840] - Move ReplicationQuotaManager, ClientRequestQuotaManager and QuotaFactory to server module
  • [KAFKA-18209] - Cleanup __transaction_state config logic
  • [KAFKA-18448] - Support SSL protocol with java.security.auth.login.config
  • [KAFKA-18652] - Extended set of streams-specific broker configurations
  • [KAFKA-18707] - Move KRaftMetadataCachePublisher to metadata module
  • [KAFKA-18998] - Move AuthHelper to server module
  • [KAFKA-19009] - Move MetadataCacheTest to metadata module
  • [KAFKA-19298] - Move RuntimeLoggerManager to server module
  • [KAFKA-19414] - Remove Public APIs from 4.1, 4.2, 4.3, 4.4, 4.5
  • [KAFKA-19583] - Native docker image fails to start when using SASL OAUTHBEARER mechanism
  • [KAFKA-19584] - Native docker image authentication fails with SASL PLAIN
  • [KAFKA-19620] - Move AutoTopicCreationManager to server module
  • [KAFKA-19752] - Move UnifiedLogTest to storage module
  • [KAFKA-19839] - Native-image (dockerimage) does not work with compression.type=zstd
  • [KAFKA-19914] - Move AlterPartitionManager to server module
  • [KAFKA-19937] - Use the same reaper thread in Persister as well as NetworkPartitionMetadataClient
  • [KAFKA-20193] - Remove `static T value(...)` method from ValueTimestampHeadersDeserializer if not needed
  • [KAFKA-20245] - Implementation for dead-letter queues for share groups in Share Partition
  • [KAFKA-20267] - Move LogCleanerParameterizedIntegrationTest to storage module
  • [KAFKA-20314] - Segmentation fault when starting kafka-native
  • [KAFKA-20348] - Move ControllerRegistrationManager to server module
  • [KAFKA-20435] - Move LogManagerTest to storage module
  • [KAFKA-20489] - Add config to control state wipe behaviour
  • [KAFKA-20492] - Factor out RocksDBStore iteration methods to DBAccessor
  • [KAFKA-20496] - Interactive Query isolation level configuration and framework
  • [KAFKA-20502] - Integration tests for IQv2 transaction isolation
  • [KAFKA-20538] - Make RocksDB time-ordered buffer headers-aware
  • [KAFKA-20549] - Implementation of Share Group DLQ Manager
  • [KAFKA-20564] - Move AuthorizerTest to server module
  • [KAFKA-20577] - Producer configuration to define allocation strategy
  • [KAFKA-20578] - Implement dynamic allocation for uncompressed data
  • [KAFKA-20613] - Copy original record data in DLQ records
  • [KAFKA-20620] - Add StreamsGroupTopologyDescriptionUpdate RPC schema and extend StreamsGroupDescribe/Heartbeat
  • [KAFKA-20621] - Add StoredTopologyEpoch and LastFailedTopologyEpoch to StreamsGroup model and metadata record
  • [KAFKA-20622] - Define StreamsGroupTopologyDescriptionPlugin SPI and InMemoryTopologyDescriptionPlugin
  • [KAFKA-20623] - Wire topology description plugin into GroupCoordinatorService
  • [KAFKA-20624] - Wire topology description plugin into GroupCoordinatorService — read path (describe) and broker wiring
  • [KAFKA-20625] - Add StreamsGroupTopologyDescriptionRequestManager and Streams client topology push
  • [KAFKA-20626] - Add topology description to Admin client, DescribeStreamsGroups handler, and CLI tools
  • [KAFKA-20627] - Add broker integration tests for topology description plugin
  • [KAFKA-20629] - Add ducktape system tests for topology description plugin
  • [KAFKA-20630] - Add documentation for topology description plugin feature
  • [KAFKA-20637] - Move ForwardingManager to server module
  • [KAFKA-20639] - Move EnvelopeUtils to server module
  • [KAFKA-20645] - Move LogLoaderTest to storage module
  • [KAFKA-20655] - Mark KIP-1331 RPCs stable before release
  • [KAFKA-20672] - Handle ARCHIVING records in share partition initialize
  • [KAFKA-20678] - Analyze and impl fetch from remote storage for DLQ
  • [KAFKA-20695] - Extend "describe group" to return "task offset" metadata
  • [KAFKA-20701] - KIP drafting, publication, discussion, vote
  • [KAFKA-20702] - PoC PR of query type 1 (TimestampedKeyQueryWithHeaders)
  • [KAFKA-20703] - Implement query type 1 (TimestampedKeyWithHeadersQuery)
  • [KAFKA-20704] - Implement query type 2 (TimestampedRangeWithHeadersQuery)
  • [KAFKA-20705] - Implement query type 3 (TimestampedWindowKeyWithHeadersQuery)
  • [KAFKA-20706] - Implement query type 4 (TimestampedWindowRangeWithHeadersQuery)
  • [KAFKA-20741] - Add ReadOnlyRecord Interface
  • [KAFKA-20757] - Run store-level unit suites through the transactional path
  • [KAFKA-20771] - Honor DLQ topic configs so as to not overwhelm it with large produce requests.
  • [KAFKA-20772] - DLQ System tests
  • [KAFKA-20790] - Promote streams assignor API to public module
  • [KAFKA-20809] - Update documentation with KIP-1191 information
  • [KAFKA-20825] - Native image can't work due to missing DefaultShareGroupDLQManager
  • [KAFKA-20850] - Add system test coverage for suppress() changelog upgrade/downgrade with dsl.store.format=HEADERS
  • [KAFKA-20852] - buffer + doc PR
  • [KAFKA-20868] - Add warmup tasks to IQ metadata
  • [KAFKA-20930] - Make offload config private for 4.4
  • [KAFKA-20969] - Mark "bootstrap.resolve.timeout.ms" as an experimental feature
  • [KAFKA-20970] - Another busy loop happens if auto.commit.interval.ms is less than bootstrap.resolve.timeout.ms
  • [KAFKA-21010] - Another busy loop happens if the member is in JOINING state and bootstrap DNS resolution is not finished