[ https://issues.apache.org/jira/browse/KAFKA-14524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17654415#comment-17654415 ]
Ismael Juma commented on KAFKA-14524: ------------------------------------- [~mdedetrich-aiven] Please check KAFKA-14470 where this is currently in progress for the storage layer and where very quick progress was achieved in a short period of time. Introducing scala (along with the scala version suffixes) to each of the new modules will make things more complicated than doing both changes at once. > Modularize `core` monolith > -------------------------- > > Key: KAFKA-14524 > URL: https://issues.apache.org/jira/browse/KAFKA-14524 > Project: Kafka > Issue Type: Improvement > Reporter: Ismael Juma > Priority: Major > > The `core` module has grown too large and it's time to split it into multiple > modules. A much slimmer `core` module will remain in the end. > Evidence of `core` growing too large is that it takes 1m10s to compile the > main code and tests and it takes hours to run all the tests sequentially. > As part of this effort, we should rewrite the Scala code in Java to reduce > developer friction, reduce compilation time and simplify deployment (i.e. we > can remove the scala version suffix from the module name). Scala may have a > number of advantages over Java 8 (minimum version we support now) and Java 11 > (minimum version we will support in Kafka 4.0), but a mixture of Scala and > Java (as we have now) is more complex than just Java. > Another benefit is that code dependencies will be strictly enforced, which > will hopefully help ensure better abstractions. > This pattern was started with the `tools` (but not completed), `metadata` and > `raft` modules and we have (when this ticket was filed) a couple more in > progress: `group-coordinator` and `storage`. > This is an umbrella ticket and it will link to each ticket related to this > goal. -- This message was sent by Atlassian Jira (v8.20.10#820010)