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 years have brought about immense changes in the software architecture landscape. The notion of a single monolithic application or even several coarse-grained services sharing a common data store has been all but erased from the hearts and minds of software practitioners world-wide. Autonomous microservices, event-driven architecture, and CQRS are the dominant tools in the construction of contemporary business-centric applications. To top it off, the proliferation of device connectivity — IoT, mobile, wearables — is creating an upward pressure on the number of events a system must handle in near-real-time.


Let’s start by acknowledging that the term ‘fast’ is multi-faceted, complex, and highly ambiguous. Latency, throughput, jitter, are metrics that shape and influence one’s interpretation of the term. It is also inherently contextual: the industry and application domains in themselves set the norms and expectations around performance. Whether or not something is fast depends largely on one’s frame of reference.

Apache Kafka is optimised for throughput at the expense of latency and jitter, while preserving other desirable qualities, such as durability, strict record order, and at-least-once delivery semantics. When someone says ‘Kafka is fast’, and assuming they are at least mildly competent, you can assume they are referring to Kafka’s ability to safely accumulate and distribute a very high number of records in a short amount of time.

Read the rest of the article 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 条评论
  • 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…

  • Kafka Gotchas

    Kafka Gotchas

    I've assisted several large clients in building a microservices-style architecture using Kafka as a messaging backbone,…

  • Introduction to Event Streaming with Kafka and Kafdrop

    Introduction to Event Streaming with Kafka and Kafdrop

    Event sourcing, eventual consistency, microservices, CQRS..

社区洞察

其他会员也浏览了