Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How Plumbr uses Kafka
Search
Nikita Salnikov-Tarnovski
February 04, 2018
Programming
0
100
How Plumbr uses Kafka
Nikita Salnikov-Tarnovski
February 04, 2018
Tweet
Share
More Decks by Nikita Salnikov-Tarnovski
See All by Nikita Salnikov-Tarnovski
Project clarity - random rant from an old engineer
nikem
0
93
Introduction to Druid
nikem
0
860
Deceived by monitoring
nikem
0
70
10% Happier
nikem
0
73
Where is my memory
nikem
0
470
Heap, off you go
nikem
0
1.2k
First steps in GC tuning
nikem
0
1.6k
I bet you have a memory leak
nikem
1
170
Plumbing Memory Leaks
nikem
1
150
Other Decks in Programming
See All in Programming
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
170
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
5.4k
クラウドに依存しないS3を使った開発術
simesaba80
0
230
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
230
AIエージェントの設計で注意するべきポイント6選
har1101
6
3.1k
CSC307 Lecture 05
javiergs
PRO
0
470
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.4k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
430
Implementation Patterns
denyspoltorak
0
160
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
2.2k
これならできる!個人開発のすゝめ
tinykitten
PRO
0
150
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
170
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
1
98
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Typedesign – Prime Four
hannesfritz
42
2.9k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
48
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Being A Developer After 40
akosma
91
590k
Navigating Team Friction
lara
191
16k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
430
Measuring & Analyzing Core Web Vitals
bluesmoon
9
730
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
150
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
140
Transcript
Eating Kafka Nikita Salnikov-Tarnovski @iNikem
Intro to Kafka
What is Kafka • Distributed streaming platform • It lets
you publish and subscribe to streams of records • It lets you store streams of records in a fault-tolerant way.
What is Kafka • Kafka runs as a cluster on
one or more servers. • The Kafka cluster stores streams of records in categories called topics. • Each record consists of a key, a value, and a timestamp.
Four APIs http://kafka.apache.org/documentation/
Append log http://kafka.apache.org/documentation/
Brokers • Several brokers form a cluster • Coordinated with
Zookeeper • All partitions are distributed among brokers
Producers • Producer sends record to a topic • Based
on a key, partition is chosen • Leader broker is found • Wait for requested acks
Fast writes • Brokers cheat and don’t write to disk
• They write to disk cache • And let OS care about flushing to disk
Replication • Each topic can be replicated among brokers •
So for each partition there are X copies • Brokers just consume messages from leader
Consumer groups (c) Confluent
Consumer rebalance (c) Confluent
Commit • Consumer has to commit offsets he consumed •
You have to decide, when and how!
Delivery semantics • At least once • At most once
• Exactly once
Kafka Connect • Off-the-shelf solution to pipe data to or
from Kafka • E.g. DB, Elasticsearch, files, etc…
Kafka Streams • DSL and platform for writing data processing
streams • If you squint enough, very similar to Java8 streams and Fork-Join pool • But across multiple jvms and servers
Kafka in Plumbr
Kafka cluster • 5 brokers • 2x replication • 20T
data for last 90 days • Inflow ~125G per day
Data processing pipeline
Spring Cloud Stream • Greatly simplifies development of Kafka based
apps • Couple of annotations and data flows :)
Solving performance problems is hard. We don’t think it needs
to be. @JavaPlumbr/@iNikem http://plumbr.eu