SlideShare a Scribd company logo
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Mastering Kafka consumer distribution
A guide to efficient scaling and resource optimization
Olena Kutsenko
Sr. Developer Advocate
Aiven
Olena Babenko
Staff Software Engineer
Aiven
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Mastering Kafka consumer distribution
A guide to efficient scaling and resource optimization
➔ why scaling consumers is not always desirable
➔ why consumer lag isn’t the metric you want to rely on
➔ how not to scale stateful consumers
➔ what is the most anticipated change in rebalancing protocol
➔ how to find a right balance between latency, durability and
costs
Definition
1 ● What is rebalancing?
● Why do we need it?
Producers Consumers
Topic
Producers Consumers
Topic
��
Partition 1
Partition 2
Partition 3
Partition 4
Producers Consumers
Topic
��
Partition 1
Partition 2
Partition 3
Partition 4
Producers Consumers
Topic
��
Partition 1
Partition 2
Partition 3
Partition 4
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 2
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 1
Broker 2
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 1
Consumer group
Broker 2
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 1
Consumer group
Consumer 4
Broker 2
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 1
Consumer group
Consumer 4
We need efficient rebalancing for:
● Scalability
● Elasticity
● Fault tolerance
Moving ownership from one consumer to another is called a rebalance
Broker 2
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 1
Consumer group
Consumer 4
Side effects of rebalancing:
● Increased consumer lag, latency and reduced throughput
● Increased resource utilization
● Potential data duplication or data loss
● Increased complexity
We need efficient rebalancing for:
● Scalability
● Elasticity
● Fault tolerance
Moving ownership from one consumer to another is called a rebalance
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Rebalancing has a lot in common with
cooking
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing
We want to scale efficiently and effectively:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Rebalancing is a teamwork
Broker 2
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 1
Consumer group
Consumer 4
Broker 2
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 1
Consumer group
Consumer 4
Group coordinator - broker
Broker 2
Partition 1
Partition 2
Partition 3
Partition 4
Consumer 1
Consumer 2
Consumer 3
Broker 1
Consumer group
Consumer 4
Group coordinator - broker
Group leader - consumer
Status quo
3 Incremental
cooperative
rebalance
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
��
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
Consumer 3
new
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
��
Consumer 3
new
JoinGroupRequest
{member.id=unknown}
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
��
Consumer 3
new
JoinGroupRequest
{member.id=unknown}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
��
Consumer 3
new
JoinGroupRequest
{member.id=unknown}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
JoinGroupRequest
{member.id=c1}
JoinGroupRequest
{member.id=c2}
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
��
Consumer 3
new
JoinGroupRequest
{member.id=unknown}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
JoinGroupRequest
{member.id=c1}
JoinGroupRequest
{member.id=c2}
JoinGroupResponse
{memberId, member list & subscriptions}
JoinGroupResponse
JoinGroupResponse
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
��
Consumer 3
new
JoinGroupRequest
{member.id=unknown}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
JoinGroupRequest
{member.id=c1}
JoinGroupRequest
{member.id=c2}
JoinGroupResponse
{memberId, member list & subscriptions}
��
SyncGroupRequest
{assignment plan}
SyncGroupRequest
SyncGroupRequest
JoinGroupResponse
JoinGroupResponse
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Group
coordinator
Consumer 1 Consumer 2
Consumer 1
member.id=c1
partitions 1 & 2
Consumer 2
member.id=c2
partition 3
��
Consumer 3
new
JoinGroupRequest
{member.id=unknown}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
HeartbeatResponse
{REBALANCE_IN_PROGRESS}
JoinGroupRequest
{member.id=c1}
JoinGroupRequest
{member.id=c2}
JoinGroupResponse
{memberId, member list & subscriptions}
JoinGroupResponse
��
SyncGroupRequest
{assignment plan}
SyncGroupResponse
{assignment plan}
SyncGroupRequest
SyncGroupRequest
SyncGroupResponse
{assignment plan}
SyncGroupResponse
{assignment plan}
JoinGroupResponse
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
You probably already see some
bottlenecks….
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Drama points
1. Group coordinator is too slow
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Drama points
1. Group coordinator is too slow
2. Group leader is too slow
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Drama points
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
Drama points
# of consumers Probability of success per
instance
Overall probability
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
Drama points
# of consumers Probability of success per
instance
Overall probability
6 99%
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
Drama points
# of consumers Probability of success per
instance
Overall probability
6 99% =0.99^6 = 0.94 = 94%
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
4.
Drama points
# of consumers Probability of success per
instance
Overall probability
6 99% =0.99^6 = 0.94 = 94%
100 99%
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
4.
Drama points
# of consumers Probability of success per
instance
Overall probability
6 99% =0.99^6 = 0.94 = 94%
100 99% =0.99^100 = 0.366 = 37%
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Drama points
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
4. A new node is stuck in rebalancing
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Drama points
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
4. A new node is stuck in rebalancing
5. onPartitionsRevoked dark hole
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Drama points
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
4. A new node is stuck in rebalancing
5. onPartitionsRevoked dark hole
Consumers apply the new assignment plan:
1. What partitions are newly assigned and what are now revoked
2. Start reading from newly assigned partitions
3. If any existing partitions are revoked trigger a new rebalance
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Drama points
1. Group coordinator is too slow
2. Group leader is too slow
3. Some of consumers are too slow
4. A new node is stuck in rebalancing
5. onPartitionsRevoked dark hole
Consumers apply the new assignment plan:
1. What partitions are newly assigned and what are now revoked
2. Start reading from newly assigned partitions
3. If any existing partitions are revoked trigger a new rebalance
Metrics
4 When to
scale
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Scale horizontally vs vertically
Vertical scaling Pros:
- Less rebalancing, if static members used. (group.instance.id config).
More flexible, when run out of resources(CPU, RAM, disc etc).
Vertical scaling Cons:
- Lots of partitions on one node, not always good as well - one hot
partition could hog all resources.
- Bigger machines not always possible.
- State might be lost
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Horizontal scaling is time
consuming and risky.
How to make it more efficient?
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Build In consumer metrics
records-lag-max
Lag - very common metric to identify that there are too much going on,
especially, is lag is among ALL or majority of partitions.
records-consumed-rate
The average number of records consumed per second
join-rate
If only one partition is laging, that might be an error, or problems with
Job Groups. Helps to monitor if something is wrong with a rebalancing
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Build In consumer metrics
Pros:
- It is a simplest option to start from
Cons:
- On a consumer side and depends on a consumer health and state
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Kafka cluster metrics
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Generic Kafka Cluster metrics
- Also have lag info
- Less biased
- More info about producers and events production
- Additional important info about group coordinator health
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Autoscale
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
KEDA (Apache Kafka scaler)
lagThreshold
Could be tuned to scale instanced based on lag.
activationLagThreshold
The activating (or deactivating) phase is the moment when KEDA
(operator) has to decide if the workload should be scaled from/to zero
+ many more
+ A lot more, if chose prometheus trigger (custom metrics)
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Knative
- Scale up and down faster using an amount of events
- You can Scale Kafka Source using KEDA
- Great in handling spikes
- Reusability of resources
- Keeps same pod identity, while replacing nodes (reduce amount of
rebalancing during failure)
- More complicated
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Lag only grows after autoscale
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Autoscale using lag is not always optimal
- Lots of joins/rebalancing can make event consumption slower. More
nodes will be requested as a result
- Too much pressure on one Leading node
- Lag metric doesn’t answer question WHAT CAUSED A LAG! (it is not
always lack of resources)
As a result:
- Fast autoscaling might be problematic
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing
We want to scale efficiently and effectively:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Lag == Money 💰 ?
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Lag == Money 💰 !!
Time
⌛
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Time is more universal unit
- Lag is depending on a message sizes, on batch.size, on linger.ms
- Time is more universal unit for many businesses - you probably
know how much it cost to delay order for 2 hours, or paying website
downtime for 5 minutes.
- AWS, Confluent, Aiven etc usually on a server side provide
time-related metrics like Estimated Time Lag or Latency
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Simplest way to calculate time lag
- Took latest offset from a consumer group
- Read committed/consumed message timestamp from a topic
- Compare with current time
Pros:
- Accurate
Cons:
- Need to get a whole message (might be big)
- Need to do this quite often
- Do not scale well for multiple producers, consumer-groups, topics
and partitions
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Serglo
- Build an interpolation table to eliminate disadvantages of a simple
method
- A latest committed/consumed message get
approximated(predicted) timestamp
- Predicted timestamp compared with current time, to return time lag
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Serglo
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Aiven time lag predictor
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Aiven Lag predictor
Checkpoint 1: 09:00
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Aiven Lag predictor
Checkpoint 2: 09:05
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Aiven Lag predictor
Consumption speed:
100 - 70 = 30 records per 5 seconds
= 30 / 5 = 6 records per second
Left to consume:
180 - 100 = 80 records
= 80 / 6 = 13.333 seconds to catch up
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Aiven Lag predictor
kafka_lag_predictor_group_lag_predicted_seconds - estimate how much
time you need to catch up, with a current producing and consuming speed.
OR
Estimate WHEN will be consumed event that was published right
NOW.
More data points gives more precise results.
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Compare
- Serglo more about individual message level(deduce timestamp for
a one last message) vs Aiven lag predictor more about overall
speed. Both could be useful in a right context
- Any options, usually works good
- Can give you slightly different results, and expectations might be
different
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
More metrics for better conclusion
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Aiven Lag predictor
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Aiven Lag predictor
Server-side metrics, defined at the same time:
`kafka_lag_predictor_topic_produced_records_total` Represents the total
count of records produced.(per partition)
`kafka_lag_predictor_group_consumed_records_total` Represents the
total count of records consumed. (per partition)
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing
We want to scale efficiently and effectively:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing -
Scale multiple instances at once
We want to scale efficiently and effectively:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Scaling ratio
Aiven lag predictor (per partition):
- Changes over time of
AVG(kafka_lag_predictor_topic_produced_records_total /
kafka_lag_predictor_group_consumed_records_total )
Client side alternative (per topic):
- Changes over time of AVG(record-send-total / record-consumed-total)
- OR per second record-send-rate / records-consumed-rate
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing
We want to scale efficiently and effectively:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
Identify other issues that caused lag
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing
We want to scale efficiently and effectively:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Rebalancing issues
Aiven lag predictor (per partition):
- Max over time of for all consumers in topic
kafka_lag_predictor_group_consumed_records_total == 0
New server side metrics (KIP-714):
- consumer.coordinator.assigned.partitions != 0
- consumer.coordinator.rebalance.latency.max
Client side alternative:
- join-rate (Consumer)
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Consumption issues
Aiven lag predictor (per partition):
- Max over time per partition, per topic
kafka_lag_predictor_group_consumed_records_total == 0
New server side metrics (KIP-714):
- consumer.fetch.manager.fetch.latency.max
- consumer.node.request.latency.max
- consumer.connection.creation.total
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Production issues (Scale down)
Aiven lag predictor (per partition):
- Max over time of
kafka_lag_predictor_topic_produced_records_total == 0
- Hot partition
MAX(kafka_lag_predictor_topic_produced_records_total)
AVG(kafka_lag_predictor_topic_produced_records_total)
New server side metrics (KIP-714):
- producer.record.queue.time.max
- producer.node.request.latency.max
- producer.record.queue.time.max
So! When to Scale?
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
What is important for your business?
- Define relevant business rules to predict problem
- Rules could be a combination of different metrics:
- Time lag estimation
- Producer health/speed
- Consumer health/speed
- Group Coordinator metrics
Example: Burrow. Took an offsets and other metrics and transform them
into status.
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Conclusion
- Use static groups when possible
- Include /Try server side metrics + new broker metrics
- Reactive scaling not always good (better to predict lag, then act
when consumer group already lagging)
- Scale based on your business needs
- Scale X instances at once and not overload your partition leader to
reduce rebalancing <- Could we do better?
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Yes!
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
A new consumer protocol! Yey!
The future
5 KIP-848
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
KIP-848 The Next Generation of the Consumer Rebalance
Protocol
➔
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Should we redo everything right
now?
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
New consumer group protocol
- Consumers are not responsible for keeping state
- Leader is not responsible for calculating assignment
- Simpler
- Not all problems gone
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
New consumer group protocol
- Pay more attention to broker health. This might be another important
dimension to your metrics
- Life of consumers should become easier, and some metrics become
obsolete
- Life of Kafka providers like Consuent, AWS, Aiven became harder, but
it is not your problem ;)
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Conclusion.
- Use static groups when possible
- Include /Try server side metrics + new broker metrics
- Reactive scaling not always good (better to predict lag, then act
when consumer group already lagging)
- Scale based on your business needs
- Scale X instances at once and not overload your partition leader <-
Not a problem anymore
- You can try a new protocol version soon (3.7 preview)
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing
We want to scale efficiently and effectively:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing
We want to scale efficiently and effectively:
Stateful
consumers
6 Assigners
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
1. Know when to scale (and when not)
2. Minimize unnecessary data movement
3. Avoid unnecessary rebalancing
We want to scale efficiently and effectively:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Assignors
➔ RangeAssignor
➔ RoundRobinAssignor
➔ CooperativeStickyAssignor
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
RangeAssignor
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
RangeAssignor
Topic 2
Partition 1
Partition 2
Partition 1
Partition 2
Consumer 1
Consumer 2
Consumer 3
Topic 1
Consumer group
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
RoundRobinAssignor
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
RoundRobinAssignor
Topic 2
Partition 1
Partition 2
Partition 1
Partition 2
Consumer 1
Consumer 2
Consumer 3
Topic 1
Consumer group
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
CooperativeStickyAssignor
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
CooperativeStickyAssignor
Topic 2
Partition 1
Partition 2
Partition 1
Partition 2
Consumer 1
Consumer 2
Consumer 3
Topic 1
Consumer group
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
● Scaling infinitely is not possible
● Use static groups and CooperativeStickyAssignor
● Pay attention to broker and consumer health
● Predict lag, not act when consumer group already lagging
● Define business rules and control them with metrics
Remember
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Olena Kutsenko
twitter.com/OlenaKutsenko
linkedin.com/in/olenakutsenko
Olena Babenko
linkedin.com/in/melhelen/ https://github.com/anelook/mastering-kafka-consumer-distribution
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Olena Kutsenko
twitter.com/OlenaKutsenko
linkedin.com/in/olenakutsenko
Olena Babenko
linkedin.com/in/melhelen/ https://github.com/anelook/mastering-kafka-consumer-distribution
Register for Aiven
for Apache Kafka
and get extra credits:
olena@aiven.io
@OlenaKutsenko aiven.io Olena Babenko:
Olena Kutsenko
twitter.com/OlenaKutsenko
linkedin.com/in/olenakutsenko
Olena Babenko
linkedin.com/in/melhelen/
Find us at
#108
https://github.com/anelook/mastering-kafka-consumer-distribution
Register for Aiven
for Apache Kafka
and get extra credits:

More Related Content

Similar to Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resource Optimization (20)

PDF
Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...
confluent
 
PDF
Geecon.cz 2015 debski krzysztof
Krzysztof Debski
 
PDF
Kafka ops-new
Ariel Moskovich
 
PDF
Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...
confluent
 
PDF
Deploying Kafka Streams Applications with Docker and Kubernetes
confluent
 
PDF
Kafka Reliable Data Delivery
Mostafa Asgari
 
PDF
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
PDF
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
confluent
 
PDF
kafka
Ariel Moskovich
 
PPTX
Apache Kafka Best Practices
DataWorks Summit/Hadoop Summit
 
PDF
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
HostedbyConfluent
 
PPTX
Kubernetes Optimization - How We Cut Our Cloud Infrastructure Cost By 40% Usi...
Magalix Corporation
 
PDF
Apache Kafka - From zero to hero
Apache Kafka TLV
 
PDF
Kafka zero to hero
Avi Levi
 
PDF
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
confluent
 
PDF
Cruise Control: Effortless management of Kafka clusters
Prateek Maheshwari
 
PDF
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
HostedbyConfluent
 
PDF
Preparing Your Kafka Streams Application For Production and Beyond
HostedbyConfluent
 
PDF
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
confluent
 
PPTX
2024 DevNexus Patterns for Resiliency: Shuffle shards
Christopher Curtin
 
Everything You Always Wanted to Know About Kafka’s Rebalance Protocol but Wer...
confluent
 
Geecon.cz 2015 debski krzysztof
Krzysztof Debski
 
Kafka ops-new
Ariel Moskovich
 
Everything You Always Wanted to Know About Kafka's Rebalance Protocol but Wer...
confluent
 
Deploying Kafka Streams Applications with Docker and Kubernetes
confluent
 
Kafka Reliable Data Delivery
Mostafa Asgari
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Lightbend
 
What's inside the black box? Using ML to tune and manage Kafka. (Matthew Stum...
confluent
 
Apache Kafka Best Practices
DataWorks Summit/Hadoop Summit
 
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
HostedbyConfluent
 
Kubernetes Optimization - How We Cut Our Cloud Infrastructure Cost By 40% Usi...
Magalix Corporation
 
Apache Kafka - From zero to hero
Apache Kafka TLV
 
Kafka zero to hero
Avi Levi
 
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
confluent
 
Cruise Control: Effortless management of Kafka clusters
Prateek Maheshwari
 
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
HostedbyConfluent
 
Preparing Your Kafka Streams Application For Production and Beyond
HostedbyConfluent
 
Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Con...
confluent
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
Christopher Curtin
 

More from HostedbyConfluent (20)

PDF
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
 
PDF
Renaming a Kafka Topic | Kafka Summit London
HostedbyConfluent
 
PDF
Evolution of NRT Data Ingestion Pipeline at Trendyol
HostedbyConfluent
 
PDF
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
HostedbyConfluent
 
PDF
Exactly-once Stream Processing with Arroyo and Kafka
HostedbyConfluent
 
PDF
Fish Plays Pokemon | Kafka Summit London
HostedbyConfluent
 
PDF
Tiered Storage 101 | Kafla Summit London
HostedbyConfluent
 
PDF
Building a Self-Service Stream Processing Portal: How And Why
HostedbyConfluent
 
PDF
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
HostedbyConfluent
 
PDF
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
HostedbyConfluent
 
PDF
Navigating Private Network Connectivity Options for Kafka Clusters
HostedbyConfluent
 
PDF
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
HostedbyConfluent
 
PDF
Explaining How Real-Time GenAI Works in a Noisy Pub
HostedbyConfluent
 
PDF
TL;DR Kafka Metrics | Kafka Summit London
HostedbyConfluent
 
PDF
A Window Into Your Kafka Streams Tasks | KSL
HostedbyConfluent
 
PDF
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
HostedbyConfluent
 
PDF
Data Contracts Management: Schema Registry and Beyond
HostedbyConfluent
 
PDF
Code-First Approach: Crafting Efficient Flink Apps
HostedbyConfluent
 
PDF
Debezium vs. the World: An Overview of the CDC Ecosystem
HostedbyConfluent
 
PDF
Beyond Tiered Storage: Serverless Kafka with No Local Disks
HostedbyConfluent
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
 
Renaming a Kafka Topic | Kafka Summit London
HostedbyConfluent
 
Evolution of NRT Data Ingestion Pipeline at Trendyol
HostedbyConfluent
 
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
HostedbyConfluent
 
Exactly-once Stream Processing with Arroyo and Kafka
HostedbyConfluent
 
Fish Plays Pokemon | Kafka Summit London
HostedbyConfluent
 
Tiered Storage 101 | Kafla Summit London
HostedbyConfluent
 
Building a Self-Service Stream Processing Portal: How And Why
HostedbyConfluent
 
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
HostedbyConfluent
 
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
HostedbyConfluent
 
Navigating Private Network Connectivity Options for Kafka Clusters
HostedbyConfluent
 
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
HostedbyConfluent
 
Explaining How Real-Time GenAI Works in a Noisy Pub
HostedbyConfluent
 
TL;DR Kafka Metrics | Kafka Summit London
HostedbyConfluent
 
A Window Into Your Kafka Streams Tasks | KSL
HostedbyConfluent
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
HostedbyConfluent
 
Data Contracts Management: Schema Registry and Beyond
HostedbyConfluent
 
Code-First Approach: Crafting Efficient Flink Apps
HostedbyConfluent
 
Debezium vs. the World: An Overview of the CDC Ecosystem
HostedbyConfluent
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
HostedbyConfluent
 
Ad

Recently uploaded (20)

PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Ad

Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resource Optimization