Apache Kafka
Unit Size

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 17,006 units with 150,195 lines of code in units (70.7% of code).
    • 48 very long units (6,666 lines of code)
    • 233 long units (15,651 lines of code)
    • 1,194 medium size units (35,592 lines of code)
    • 2,386 small units (34,578 lines of code)
    • 13,145 very small units (57,708 lines of code)
4% | 10% | 23% | 23% | 38%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
java3% | 9% | 21% | 23% | 42%
scala5% | 14% | 31% | 22% | 24%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Logical Component
primary logical decomposition
core5% | 15% | 31% | 23% | 24%
connect6% | 9% | 22% | 21% | 40%
clients2% | 8% | 18% | 21% | 48%
generator21% | 19% | 28% | 12% | 17%
streams2% | 6% | 22% | 27% | 40%
tools6% | 14% | 24% | 19% | 35%
jmh-benchmarks0% | 17% | 30% | 20% | 31%
log4j-appender0% | 24% | 0% | 6% | 69%
examples0% | 0% | 62% | 24% | 13%
Legend:
101+
51-100
21-50
11-20
1-10
Alternative Visuals
Longest Units
Top 50 longest units
Unit# linesMcCabe index# params
static
in streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java
265 1 0
static
in clients/src/main/java/org/apache/kafka/clients/consumer/ConsumerConfig.java
243 1 0
public static void main()
in tools/src/main/java/org/apache/kafka/trogdor/coordinator/CoordinatorClient.java
242 29 1
public ConnectMetricsRegistry()
in connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ConnectMetricsRegistry.java
223 1 1
def handleFetchRequest()
in core/src/main/scala/kafka/server/KafkaApis.scala
196 37 1
def main()
in core/src/main/scala/kafka/tools/JmxTool.scala
186 34 1
protected static Object convertTo()
in connect/api/src/main/java/org/apache/kafka/connect/data/Values.java
185 58 3
private KTable doJoinOnForeignKey()
in streams/src/main/java/org/apache/kafka/streams/kstream/internals/KTableImpl.java
178 4 6
public void onCompletion()
in connect/runtime/src/main/java/org/apache/kafka/connect/storage/KafkaConfigBackingStore.java
172 39 2
protected static SchemaAndValue parse()
in connect/api/src/main/java/org/apache/kafka/connect/data/Values.java
166 49 2
private void generateClassWriter()
in generator/src/main/java/org/apache/kafka/message/MessageDataGenerator.java
165 19 3
private void generateVariableLengthFieldSize()
in generator/src/main/java/org/apache/kafka/message/MessageDataGenerator.java
165 24 3
String fieldDefault()
in generator/src/main/java/org/apache/kafka/message/FieldSpec.java
147 40 2
private def endTransaction()
in core/src/main/scala/kafka/coordinator/transaction/TransactionCoordinator.scala
146 46 6
static
in clients/src/main/java/org/apache/kafka/clients/producer/ProducerConfig.java
144 1 0
public LoginContext login()
in clients/src/main/java/org/apache/kafka/common/security/kerberos/KerberosLogin.java
144 26 0
public KafkaConsumer()
in clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java
141 8 3
private def doLoadGroupsAndOffsets()
in core/src/main/scala/kafka/coordinator/group/GroupMetadataManager.scala
135 36 2
public AlterPartitionReassignmentsResult alterPartitionReassignments()
in clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java
130 21 2
private KafkaStreams()
in streams/src/main/java/org/apache/kafka/streams/KafkaStreams.java
128 14 4
override def onComplete()
in core/src/main/scala/kafka/coordinator/transaction/TransactionMarkerRequestCompletionHandler.scala
126 26 1
public static void main()
in tools/src/main/java/org/apache/kafka/trogdor/agent/AgentClient.java
125 10 1
private def append()
in core/src/main/scala/kafka/log/Log.scala
125 20 6
private def doHandleStateChanges()
in core/src/main/scala/kafka/controller/ReplicaStateMachine.scala
123 27 3
private def controlledShutdown()
in core/src/main/scala/kafka/server/KafkaServer.scala
120 23 0
def appendTransactionToLog()
in core/src/main/scala/kafka/coordinator/transaction/TransactionStateManager.scala
119 23 5
private void generateClassReader()
in generator/src/main/java/org/apache/kafka/message/MessageDataGenerator.java
119 12 3
def becomeLeaderOrFollower()
in core/src/main/scala/kafka/server/ReplicaManager.scala
117 15 4
def main()
in core/src/main/scala/kafka/tools/ReplicaVerificationTool.scala
116 10 1
def startup()
in core/src/main/scala/kafka/server/KafkaServer.scala
115 12 0
def alterUserScramCredentials()
in core/src/main/scala/kafka/server/AdminManager.scala
114 18 2
private void generateClassFromStruct()
in generator/src/main/java/org/apache/kafka/message/MessageDataGenerator.java
114 7 3
private void initGauges()
in streams/src/main/java/org/apache/kafka/streams/state/internals/metrics/RocksDBMetricsRecorder.java
113 1 2
private void generateVariableLengthReader()
in generator/src/main/java/org/apache/kafka/message/MessageDataGenerator.java
113 16 9
def storeOffsets()
in core/src/main/scala/kafka/coordinator/group/GroupMetadataManager.scala
112 28 8
public static AbstractResponse parseResponse()
in clients/src/main/java/org/apache/kafka/common/requests/AbstractResponse.java
111 53 3
public static AbstractRequest parseRequest()
in clients/src/main/java/org/apache/kafka/common/requests/AbstractRequest.java
111 53 3
static
in connect/json/src/main/java/org/apache/kafka/connect/json/JsonConverter.java
111 16 0
private void generateVariableLengthWriter()
in generator/src/main/java/org/apache/kafka/message/MessageDataGenerator.java
109 16 6
private CompletedFetch initializeCompletedFetch()
in clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java
108 28 1
def readFromLocalLog()
in core/src/main/scala/kafka/server/ReplicaManager.scala
108 11 7
def handleOffsetCommitRequest()
in core/src/main/scala/kafka/server/KafkaApis.scala
108 27 1
private JsonNode convertToJson()
in connect/json/src/main/java/org/apache/kafka/connect/json/JsonConverter.java
108 39 2
protected Map performTaskAssignment()
in connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/IncrementalCooperativeAssignor.java
107 7 5
public static void main()
in tools/src/main/java/org/apache/kafka/tools/ProducerPerformance.java
105 28 1
public AlterUserScramCredentialsResult alterUserScramCredentials()
in clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java
104 18 2
static
in connect/transforms/src/main/java/org/apache/kafka/connect/transforms/TimestampConverter.java
103 12 0
public Schema asConnectSchema()
in connect/json/src/main/java/org/apache/kafka/connect/json/JsonConverter.java
101 40 1
def maxConnections = getInt()
in core/src/main/scala/kafka/server/KafkaConfig.scala
100 2 1
def stopReplicas()
in core/src/main/scala/kafka/server/ReplicaManager.scala
99 19 6