Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
7,633
in the current tree
Bus Factor
14
14 authors are primary owner of 3,844 of 7,633 files
Single-Owner Files
1,711
22.4% of tracked files
Contributors
1,287
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
streams/src/main/java/org/apache/kafka/streams/kstream/internals/SessionWindow.javaMatthias J. Sax6
.github/actions/gh-api-update-status/action.ymlDavid Arthur6
clients/src/main/java/org/apache/kafka/clients/consumer/internals/Acknowledgements.javaAndrew Schofield5
streams/src/main/java/org/apache/kafka/streams/state/internals/metrics/NamedCacheMetrics.javaBruno Cadonna5
generator/src/test/java/org/apache/kafka/message/HeaderVersionsTest.javaAlan Lau4
clients/src/test/java/org/apache/kafka/common/errors/TransactionExceptionHierarchyTest.javaKaushik Raina4
streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/IQv2HeadersStoreIntegrationTest.javaJess6684
streams/src/main/java/org/apache/kafka/streams/state/internals/AbstractTransactionBuffer.javaNick Telford4
streams/src/main/java/org/apache/kafka/streams/state/internals/LegacyCheckpointingStateStore.javaNick Telford4
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/EventProcessor.javaKirk True4
Table: the 100 most-changed of 1,711 single-owner files
FileSole ownerCommits
streams/src/main/java/org/apache/kafka/streams/kstream/internals/SessionWindow.javaMatthias J. Sax6
.github/actions/gh-api-update-status/action.ymlDavid Arthur6
clients/src/main/java/org/apache/kafka/clients/consumer/internals/Acknowledgements.javaAndrew Schofield5
streams/src/main/java/org/apache/kafka/streams/state/internals/metrics/NamedCacheMetrics.javaBruno Cadonna5
generator/src/test/java/org/apache/kafka/message/HeaderVersionsTest.javaAlan Lau4
clients/src/test/java/org/apache/kafka/common/errors/TransactionExceptionHierarchyTest.javaKaushik Raina4
streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/IQv2HeadersStoreIntegrationTest.javaJess6684
streams/src/main/java/org/apache/kafka/streams/state/internals/AbstractTransactionBuffer.javaNick Telford4
streams/src/main/java/org/apache/kafka/streams/state/internals/LegacyCheckpointingStateStore.javaNick Telford4
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/EventProcessor.javaKirk True4
streams/src/main/java/org/apache/kafka/streams/state/internals/BufferValue.javaJohn Roesler4
group-coordinator/group-coordinator-api/src/main/java/org/apache/kafka/coordinator/group/api/streams/assignor/GroupSpec.javagabriellafu3
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/assignor/CommonAssignorTests.javaSean Quah3
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/modern/GroupSpecBuilderTest.javaSean Quah3
coordinator-common/src/test/java/org/apache/kafka/coordinator/common/runtime/CoordinatorBackgroundThreadPoolExecutorTest.javaSean Quah3
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/assignor/uniform2/IndexedGroup.javaDavid Jacot3
generator/src/main/java/org/apache/kafka/message/CoordinatorRecordTypeGenerator.javaDavid Jacot3
group-coordinator/src/main/resources/common/message/ConsumerGroupCurrentMemberAssignmentKey.jsonDavid Jacot3
group-coordinator/src/main/resources/common/message/ConsumerGroupMemberMetadataKey.jsonDavid Jacot3
group-coordinator/src/main/resources/common/message/ConsumerGroupMetadataKey.jsonDavid Jacot3
group-coordinator/src/main/resources/common/message/ConsumerGroupRegularExpressionKey.jsonDavid Jacot3
group-coordinator/src/main/resources/common/message/ConsumerGroupRegularExpressionValue.jsonDavid Jacot3
group-coordinator/src/main/resources/common/message/ConsumerGroupTargetAssignmentMemberKey.jsonDavid Jacot3
group-coordinator/src/main/resources/common/message/ConsumerGroupTargetAssignmentMetadataKey.jsonDavid Jacot3
core/src/test/java/kafka/server/share/ReplicaManagerLogReaderTest.javaSushant Mahajan3
clients/src/main/java/org/apache/kafka/clients/consumer/internals/ShareConsumerDelegate.javaAndrew Schofield3
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ShareAcknowledgementEvent.javaAndrew Schofield3
clients/src/test/java/org/apache/kafka/clients/consumer/internals/AcknowledgementCommitCallbackHandlerTest.javaAndrew Schofield3
clients/src/main/java/org/apache/kafka/clients/consumer/internals/AcknowledgementCommitCallbackHandler.javaAndrew Schofield3
clients/src/test/java/org/apache/kafka/clients/consumer/internals/AcknowledgementsTest.javaAndrew Schofield3
clients/src/testFixtures/java/org/apache/kafka/test/faultproxy/KafkaProtocolFaultProxy.javaBill Bejeck3
streams/src/main/java/org/apache/kafka/streams/internals/metrics/StreamsThreadMetricsDelegatingReporter.javaBill Bejeck3
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/topics/RepartitionTopics.javaLucas Brutschy3
raft/src/main/java/org/apache/kafka/raft/internals/RemoveVoterHandlerState.javaJosé Armando García Sancio3
streams/src/main/java/org/apache/kafka/streams/state/internals/InMemorySessionTransactionBuffer.javaNick Telford3
streams/src/main/java/org/apache/kafka/streams/state/internals/InMemoryWindowTransactionBuffer.javaNick Telford3
streams/src/main/java/org/apache/kafka/streams/state/internals/InMemoryTransactionBuffer.javaNick Telford3
streams/src/test/java/org/apache/kafka/streams/state/internals/AbstractTransactionBufferTest.javaNick Telford3
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/AllTopicsMetadataEvent.javaKirk True3
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/CompletableBackgroundEvent.javaKirk True3
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/FetchCommittedOffsetsEvent.javaKirk True3
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/TopicMetadataEvent.javaKirk True3
tests/kafkatest/tests/tools/kibosh_test.pyColin Patrick McCabe3
clients/src/main/resources/common/message/ResponseHeader.jsonColin Patrick McCabe3
tests/kafkatest/services/trogdor/network_partition_fault_spec.pyColin Patrick McCabe3
tests/kafkatest/tests/tools/trogdor_test.pyColin Patrick McCabe3
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/assignor/RackAwareStandbyPicker.javagabriellafu2
group-coordinator/group-coordinator-api/src/main/java/org/apache/kafka/coordinator/group/api/streams/assignor/GroupAssignment.javagabriellafu2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/assignor/AssignmentConfigsImpl.javagabriellafu2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/assignor/AssignmentConfigsImplTest.javagabriellafu2
group-coordinator/group-coordinator-api/src/main/java/org/apache/kafka/coordinator/group/api/streams/assignor/MemberAssignmentMetadata.javagabriellafu2
group-coordinator/group-coordinator-api/src/main/java/org/apache/kafka/coordinator/group/api/streams/assignor/MemberAssignmentState.javagabriellafu2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/assignor/MemberMetadataAndStateImpl.javagabriellafu2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/assignor/UniformHomogeneousAssignmentBuilderTest.javaSean Quah2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/TargetAssignmentRecordsBuilder.javaSean Quah2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/TargetAssignmentRecordsBuilderTest.javaSean Quah2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/util/UpdatedMembersAndTargetAssignmentView.javaSean Quah2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/util/UpdatedMembersAndTargetAssignmentViewTest.javaSean Quah2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/TargetAssignmentMetadata.javaSean Quah2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/modern/MemberAssignmentImplTest.javaSean Quah2
coordinator-common/src/test/java/org/apache/kafka/coordinator/common/runtime/DirectEventProcessor.javaSean Quah2
core/src/main/java/kafka/server/share/ReplicaManagerPartitionMetadataProvider.javaApoorv Mittal2
server/src/main/java/org/apache/kafka/server/share/PartitionMetadataProvider.javaApoorv Mittal2
server/src/main/java/org/apache/kafka/server/share/fetch/AcquisitionLockTimeoutHandler.javaApoorv Mittal2
server/src/main/java/org/apache/kafka/server/share/fetch/AcquisitionLockTimerTask.javaApoorv Mittal2
server/src/main/java/org/apache/kafka/server/share/metrics/SharePartitionMetrics.javaApoorv Mittal2
core/src/main/java/kafka/server/share/SharePartitionCache.javaApoorv Mittal2
server/src/main/java/org/apache/kafka/server/share/fetch/ShareAcquiredRecords.javaApoorv Mittal2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/modern/MemberState.javaApoorv Mittal2
server/src/main/java/org/apache/kafka/server/metrics/ClientMetricsInstanceMetadata.javaApoorv Mittal2
clients/src/test/java/org/apache/kafka/common/telemetry/internals/ClientTelemetryEmitterTest.javaApoorv Mittal2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/assignor/uniform2/util/IntList.javaDavid Jacot2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/assignor/uniform2/util/IntListTest.javaDavid Jacot2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/assignor/uniform2/CurrentAssignment.javaDavid Jacot2
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/assignor/uniform2/Quotas.javaDavid Jacot2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/assignor/uniform2/QuotasFixture.javaDavid Jacot2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/assignor/uniform2/CurrentAssignmentTest.javaDavid Jacot2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/assignor/uniform2/IndexedGroupTest.javaDavid Jacot2
server/src/main/java/org/apache/kafka/server/share/dlq/ShareGroupDLQMetadataCacheHelper.javaSushant Mahajan2
server/src/main/java/org/apache/kafka/server/share/dlq/ShareGroupDLQRecordParameter.javaSushant Mahajan2
share-coordinator/src/main/java/org/apache/kafka/coordinator/share/ShareCoordinatorOffsetsManager.javaSushant Mahajan2
generator/src/main/java/org/apache/kafka/message/HeaderVersions.javaAlan Lau2
clients/src/test/java/org/apache/kafka/clients/admin/ListGroupsOptionsTest.javaAndrew Schofield2
clients/src/main/java/org/apache/kafka/clients/consumer/internals/events/ShareSubscriptionChangeEvent.javaAndrew Schofield2
clients/src/test/java/org/apache/kafka/test/faultproxy/KafkaProtocolFaultProxyTest.javaBill Bejeck2
streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/SourceTopicChangelogRestoreIntegrationTest.javaBill Bejeck2
streams/src/test/java/org/apache/kafka/streams/state/internals/ThrowingOnOffsetsPutDBAccessor.javaBill Bejeck2
streams/src/main/java/org/apache/kafka/streams/kstream/internals/GroupedInternal.javaBill Bejeck2
server/src/main/java/org/apache/kafka/server/DefaultAutoTopicCreationManager.javaKuan-Po Tseng2
server/src/main/java/org/apache/kafka/server/transaction/AddPartitionsToTxnManager.javaKuan-Po Tseng2
streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/StreamsGroupWarmupTaskLifecycleIntegrationTest.javaLucas Brutschy2
core/src/test/java/kafka/server/FailingTopologyDescriptionPlugin.javaLucas Brutschy2
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/assignor/BalancedTaskAssignorTest.javaGavin Wang2
server-common/src/main/java/org/apache/kafka/security/DelegationTokenManager.javaMaros Orsak2
metadata/src/main/java/org/apache/kafka/metadata/publisher/ScramPublisher.javaMaros Orsak2
clients/src/main/java/org/apache/kafka/common/requests/StreamsGroupTopologyDescriptionUpdateRequest.javaAlieh Saeedi2
streams/src/test/java/org/apache/kafka/streams/kstream/internals/TimestampedCacheFlushListenerWithHeadersTest.javaAlieh Saeedi2
streams/src/test/java/org/apache/kafka/test/GenericInMemoryTimestampedKeyValueStoreWithHeaders.javaAlieh Saeedi2
streams/src/main/java/org/apache/kafka/streams/state/internals/ValueConverters.javaAlieh Saeedi2
server/src/main/java/org/apache/kafka/server/AuthHelper.javaPoAn Yang2

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
gongxuanzhang65102,137
Matthias J. Sax465271,613
ashwinpankaj42641947
Mickael Maison365961,618
Colin Patrick McCabe289611,054
Jason Gustafson26215929
Ismael Juma23191,387
PoAn Yang216124954
David Jacot17758705
majialong1769466
Sanskar Jhajharia156201,188
Andrew Schofield14935532
TengYao Chi14849780
Ken Huang133651,005
Greg Harris11786299
John Roesler11626650
Guozhang Wang10819712
José Armando García Sancio10711353
Kirk True10648311
Apoorv Mittal10544353
Chris Egerton9613326
Sushant Mahajan9614213
Lianet Magrans9044474
Lucas Brutschy879353
Rajini Sivaram836465

Showing top 25 of 1287 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
build.gradle208Ismael Juma15.4%
core/src/main/scala/kafka/server/KafkaConfig.scala167Ismael Juma6.2%
core/src/main/scala/kafka/server/KafkaApis.scala138Jason Gustafson8.3%
gradle/dependencies.gradle131Ismael Juma24.0%
clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java128Jason Gustafson18.0%
checkstyle/suppressions.xml119Colin Patrick McCabe10.2%
core/src/test/scala/unit/kafka/utils/TestUtils.scala118Ismael Juma10.3%
core/src/main/scala/kafka/server/ReplicaManager.scala117Jason Gustafson10.1%
clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java114Jason Gustafson8.4%
checkstyle/import-control.xml109Colin Patrick McCabe11.4%
core/src/test/scala/unit/kafka/server/KafkaConfigTest.scala106Ismael Juma7.6%
core/src/test/scala/unit/kafka/server/KafkaApisTest.scala102David Jacot12.4%
clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java101Colin Patrick McCabe8.3%
core/src/test/scala/unit/kafka/server/ReplicaManagerTest.scala100Ismael Juma8.7%
core/src/main/scala/kafka/cluster/Partition.scala96Jason Gustafson11.3%
streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java96Matthias J. Sax22.7%
clients/src/main/java/org/apache/kafka/common/utils/Utils.java88Ismael Juma12.3%
clients/src/test/java/org/apache/kafka/clients/consumer/KafkaConsumerTest.java87Jason Gustafson9.1%
clients/src/test/java/org/apache/kafka/common/requests/RequestResponseTest.java86David Jacot10.4%
clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java85Jason Gustafson7.6%