Kafka Gotchas

Kafka Gotchas

I've assisted several large clients in building a microservices-style architecture using Kafka as a messaging backbone, having a reasonably good understanding of its abilities and the use cases that really bring them out. But I'm not a Kafka apologist by any stretch; any technology that has gone through such a rapid adoption curve is bound to polarise its audience and rub certain developers up a wrong way, and Kafka is no exception. Like anything else, you need to invest a significant amount of time in getting across Kafka and event streaming in general, before you become fully proficient and can harness its might. And be prepared to face one or two frustrations, to put it mildly, along the way.

I've compiled a list of shortcomings that may cause developer frustration, or catch out unsuspecting first-timers. In no particular order:

Too many tunable knobs

The number of configuration parameters in Kafka can be overwhelming, not just for newcomers but also seasoned pros. Possibly with the sole exception of the JVM, I cannot think of another technology that has this many configuration parameters. This isn't to say that the config options aren't necessary; but one does wonder how many of those parameters could instead be replaced by ergonomics, much like Java did with G1. So rather than specifying a plethora of individual thresholds and tolerances, let the operator set a performance target, and have the system derive an optimal set of values that best meet this target.

Read the rest of the story on Medium.

要查看或添加评论,请登录

Emil Koutanov的更多文章

  • Contrasting Kafka with Akka

    Contrasting Kafka with Akka

    My software architecture consulting gigs take me places ranging from startups to more established organisations, having…

  • The Design of an Event Store

    The Design of an Event Store

    The topics “event-driven architecture” “event stream processing” and “event sourcing” have enjoyed quite a buzz as of…

    1 条评论
  • Combining strict order with massive parallelism using Kafka

    Combining strict order with massive parallelism using Kafka

    Having been involved in several large-scale Kafka projects for different clients across a broad range of industries, I…

  • Logging on the Cheap

    Logging on the Cheap

    To log or not to log? Writing new code is a relatively small part of application development. A much larger part of a…

    1 条评论
  • Contrasting NATS with Apache Kafka

    Contrasting NATS with Apache Kafka

    TL;DR Kafka is an Event Streaming Platform, while NATS is a closer to a conventional Message Queue. Kafka is optimised…

  • Apache Kafka in a Nutshell

    Apache Kafka in a Nutshell

    So, you’ve heard of this Kafka thing that’s popping up all over the shop. From green-sprout startups to greedy…

    1 条评论
  • Why Kafka Is So Fast

    Why Kafka Is So Fast

    Discover the deliberate design decisions that have made Kafka the performance powerhouse it is today. The last few…

    2 条评论
  • Getting Started With Istio

    Getting Started With Istio

    Understanding what a service mesh is and how it can be used effectively in a microservices architecture. The last few…

  • Introduction to Event Streaming with Kafka and Kafdrop

    Introduction to Event Streaming with Kafka and Kafdrop

    Event sourcing, eventual consistency, microservices, CQRS..

社区洞察

其他会员也浏览了