One major reason is version mismatches. Unless you’re maintaining the Kafka infrastructure yourself on you servers, and not using tools such as Hortonworks Ambari or Cloudera, you’ll have an older version of Kafka running on your servers. At least this was one of the issues we faced. So Spring’s annotation based producers and consumers don’t work properly. Second, since Spring brings another layer on top of Apache’s Kafka library for Java, you’ll see some significant delay in sending and receiving messages. At our scale, this was a huge problem as we’re getting millions of messages each day. Our experiment with Spring’s Kafka module was over a year ago. So I don’t completely remember what all issues we faced. But these two were the major ones which made us switch back to Apache’s own Kafka clients. Things might have improved now.