Most of the linkedin and Apache projects are Java/JVM-based, and it is estimated that Go has not been released when Kafka started to be developed (GO’s history is very short, the first version was in 2009, and it is less than 6 years old now; Kafka It is a project that Linkedin first developed internally and then donated to Apache).
Many project language choices have a lot to do with the company's technology stack. For example, Alibaba used Java to develop its own RocketMQ with reference to Kafka (Alibaba is a typical Java technology stack), and rewrote Apache Storm (called JStorm) in Java. If Kafka is rewritten in Golang, the performance is likely to be much better, but Kafka is a distributed system, and the throughput can be expanded horizontally, so there is no need.
Most of the linkedin and Apache projects are Java/JVM-based, and it is estimated that Go has not been released when Kafka started to be developed (GO’s history is very short, the first version was in 2009, and it is less than 6 years old now; Kafka It is a project that Linkedin first developed internally and then donated to Apache).
Many project language choices have a lot to do with the company's technology stack. For example, Alibaba used Java to develop its own RocketMQ with reference to Kafka (Alibaba is a typical Java technology stack), and rewrote Apache Storm (called JStorm) in Java. If Kafka is rewritten in Golang, the performance is likely to be much better, but Kafka is a distributed system, and the throughput can be expanded horizontally, so there is no need.
Produced by LinkedIn and has a certain relationship with the company’s technology stack
The messaging system of Go language has nsq (not related to the question...)