Kafka vs Kestrel: What are the differences?
Developers describe Kafka as "Distributed, fault tolerant, high throughput pub-sub messaging system". Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design. On the other hand, Kestrel is detailed as "Simple, distributed message queue system". Kestrel is based on Blaine Cook's "starling" simple, distributed message queue, with added features and bulletproofing, as well as the scalability offered by actors and the JVM.
Kafka and Kestrel belong to "Message Queue" category of the tech stack.
Some of the features offered by Kafka are:
- Written at LinkedIn in Scala
- Used by LinkedIn to offload processing of all page and other views
- Defaults to using persistence, uses OS disk cache for hot data (has higher throughput then any of the above having persistence enabled)
On the other hand, Kestrel provides the following key features:
- Written by Robey Pointer
- Starling clone written in Scala (a port of Starling from Ruby to Scala)
- Queues are stored in memory, but logged on disk
Kafka and Kestrel are both open source tools. It seems that Kafka with 12.7K GitHub stars and 6.81K forks on GitHub has more adoption than Kestrel with 2.8K GitHub stars and 326 GitHub forks.
What is Kafka?
What is Kestrel?
Want advice about which of these to choose?Ask the StackShare community!
Why do developers choose Kestrel?
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Kestrel?
Sign up to get full access to all the companiesMake informed product decisions
What tools integrate with Kestrel?
Sign up to get full access to all the tool integrationsMake informed product decisions
Front-end messages are logged to Kafka by our API and application servers. We have batch processing (on the middle-left) and real-time processing (on the middle-right) pipelines to process the experiment data. For batch processing, after daily raw log get to s3, we start our nightly experiment workflow to figure out experiment users groups and experiment metrics. We use our in-house workflow management system Pinball to manage the dependencies of all these MapReduce jobs.
Building out real-time streaming server to present data insights to Coolfront Mobile customers and internal sales and marketing teams.