SlideShare a Scribd company logo
1 of 158
1
Static Membership: Rebalance
Strategy Designed for the Cloud
Boyang Chen & Liquan Pei
2
Software Engineer at
Confluent
Kafka Summit SF 2018: Building Pinterest Real-Time Ads Platform Using Kafka Streams
Senior Software Engineer, Tech
Lead at Pinterest
3
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
state
Producer
Consumer
Producer
4
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
state
Producer
Consumer
Stream Instance
Producer
5
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
state
Producer
Consumer
Stream Thread
Producer
6
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
state
Producer
Consumer
Stream task
Producer
7
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
state
Producer
Consumer
Stream state
Producer
8
8
8
How does Kafka Streams
reconstruct a stateful task?
9
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
state
Producer
Producer
Consumer
10
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
Producer
Producer
session timeout
Consumer
state
11
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
state
Producer
Consumer
Producer
session timeout → rebalance time
12
Kafka Streams
Input Partitions
Output
Partitions
state
Consumer Producer
state
session timeout → rebalance time
13
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
Consumer
session timeout → rebalance time
14
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time
Consumer
15
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time
Consumer
16
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time
Consumer
17
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time → state restore time
Consumer
18
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time → state restore time
Consumer
19
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time → state restore time
Consumer
20
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time → state restore time
Restore
consumerState changelog
Consumer
21
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time → state restore time
Restore
consumerState changelog
Consumer
22
Kafka Streams
Input Partitions
Output
Partitions
state
Consumer
Producer
state
state
session timeout → rebalance time → task assignment time → state restore time → Done!
Restore
consumerState changelog
23
Task recovery time breakdown
24
Session
timeout
(Failure
detection)
Task recovery time breakdown
25
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task recovery time breakdown
26
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
Task recovery time breakdown
27
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Task recovery time breakdown
28
Task recovery time breakdown
Our Goal
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
29
availability = 1 - (∑task recovery time / ∑task online time)
task recovery time = session timeout + rebalance time + task assignment time + state restore time
30
availability = 1 - (∑task recovery time / ∑task online time)
task recovery time = session timeout + rebalance time + task assignment time + state restore time
Kafka Rebalance
1. Group is stable with three
consumers and eight tasks at
Generation 1
31Coordinator
T3T1 T2 T6T4 T5 T8T7
T1 T2 T3
T5T4 T6
T7
T8
Generation 1
Generation 1 Generation 1 Generation 1
Kafka Rebalance
1. Group is stable with three
consumers and eight tasks at
Generation 1
32Coordinator
T3T1 T2 T6T4 T5 T8T7
T1 T2 T3
T5T4 T6
T7
T8
Generation 1
Generation 1 Generation 1 Generation 1
Kafka Rebalance
1. Group is stable with three
consumers and eight tasks at
Generation 1
2. Members rejoin the group
33Coordinator
T3T1 T2 T6T4 T5 T8T7
T1 T2 T3
T5T4 T6
T7
T8
Generation 1
Generation 1 Generation 1 Generation 1
Kafka Rebalance
1. Group is stable with three
consumers and eight tasks at
Generation 1
2. Members rejoin the group
3. All members are rejoined
34Coordinator
T3T1 T2 T8T7
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5
Generation 1
Generation 1 Generation 1 Generation 1
Kafka Rebalance
1. Group is stable with three
consumers and eight tasks at
Generation 1
2. Members rejoin the group
3. All members are rejoined
4. Generation ID bumps up by one
35Coordinator
T3T1 T2 T8T7
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5
Generation 1
Generation 2
Generation 1 Generation 1 Generation 1
Kafka Rebalance
1. Group is stable with three
consumers and eight tasks at
Generation 1
2. Members rejoin the group
3. All members are rejoined
4. Generation ID bumps up by one
5. Reply to the join request with a
new generation and nominate a
member as leader
36Coordinator
T3T1 T2 T8T7
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5
Generation 2
Generation 1 Generation 1 Generation 1
Kafka Rebalance
1. Group is stable with three
consumers and eight tasks at
Generation 1
2. Members rejoin the group
3. All members are rejoined
4. Generation ID bumps up by one
5. Reply to the join request with a
new generation and nominate a
member as leader
37Coordinator
T3T1 T2 T8T7
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5
Generation 2
Generation 2 Generation 1 Generation 1
Kafka Rebalance
1. Group is stable with three
consumers and eight tasks at
Generation 1
2. Members rejoin the group
3. All members are rejoined
4. Generation ID bumps up by one
5. Reply to the join request with a
new generation and nominate a
member as leader
38Coordinator
T3T1 T2 T8T7
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5
Generation 2
Generation 2 Generation 2 Generation 1
Kafka Rebalance
1. …
2. Leader performs assignment
while other members wait
39Coordinator
T3T1 T2 T8T7
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5
T1 T2
T5T4
T7 T8
T3 T6
Generation 2
Generation 2 Generation 2 Generation 2
Kafka Rebalance
1. …
2. Leader performs assignment
while other members wait
40Coordinator
T3T1 T2 T8T7
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5
T1 T2
T5T4
T7 T8
T3 T6
Generation 2
Generation 2 Generation 2 Generation 2
Kafka Rebalance
1. …
7. Leader performs assignment
while other members wait
8. Leader sends back new
assignment
41Coordinator
T3T1 T2 T8T7
T1 T4 T7
T5T2 T8
T3
T6
T6T4 T5
T1 T2
T5T4
T7 T8
T3 T6
Generation 2
Generation 2 Generation 2 Generation 2
Kafka Rebalance
1. …
7. Leader performs assignment
while other members wait
8. Leader sends back new
assignment
9. Leader propagates assignment
to members
42Coordinator
T3T1 T2 T8T7
T1 T4 T7
T5T2 T8
T3
T6
T6T4 T5
Generation 2
Generation 2 Generation 2 Generation 2
Kafka Rebalance
1. …
7. Leader performs assignment
while other members wait
8. Leader sends back new
assignment
9. Coordinator propagates
assignment to members
43Coordinator
T7T1 T4 T8T7
T1 T4 T7
T5T2 T8
T3
T6
T6T4 T5
Generation 2
Generation 2 Generation 2 Generation 2
Kafka Rebalance
1. …
7. Leader performs assignment
while other members wait
8. Leader sends back new
assignment
9. Coordinator propagates
assignment to members
44Coordinator
T7T1 T4 T8T7
T1 T4 T7
T5T2 T8
T3
T6
T8T2 T5
Generation 2
Generation 2 Generation 2 Generation 2
Kafka Rebalance
1. …
7. Leader performs assignment
while other members wait
8. Leader sends back new
assignment
9. Coordinator propagates
assignment to members
45Coordinator
T7T1 T4 T6T3
T1 T4 T7
T5T2 T8
T3
T6
T8T2 T5
Generation 2
Generation 2 Generation 2 Generation 2
Kafka Rebalance
1. …
7. Leader performs assignment
while other members wait
8. Leader sends back new
assignment
9. Coordinator propagates
assignment to members
10. Group is stable at Generation 2!
46Coordinator
T7T1 T4 T6T3
T1 T4 T7
T5T2 T8
T3
T6
T8T2 T5
Generation 2
Generation 2 Generation 2 Generation 2
47
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Task recovery time breakdown
48
Task recovery time breakdown
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
49
Task recovery time breakdown
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
50
Task recovery time breakdown
Better 100% availability
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
? ? ?
51
Task recovery time breakdown
Better 100% availability
Worse recovery time!
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
Transient
unavailability
52Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
Transient
unavailability
1. One member couldn’t connect to
coordinator
53Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
Transient
unavailability
1. One member couldn’t connect to
coordinator
2. Session timeout reaches
54Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
Transient
unavailability
1. One member couldn’t connect to
coordinator
2. Session timeout reaches
3. Require other members to
revoke tasks/rejoin
55Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7T3T1 T2 T6T4 T5
Transient
unavailability
1. One member couldn’t connect to
coordinator
2. Session timeout reaches
3. Require other members to
revoke tasks/rejoin
4. Perform Assignment
56Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7T3T1 T2 T6T4 T5
Transient
unavailability
1. One member couldn’t connect to
coordinator
2. Session timeout reaches
3. Require other members to
revoke tasks/rejoin
4. Perform Assignment
5. Propagate…
6. Done! However one member
becomes zombie now
7.
57Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7T3T1 T2 T6T4 T5
T7 T8
Transient
unavailability
1. …
6. Done! However one member
becomes zombie now
7. Zombie member rejoins
58Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7T3T1 T2 T6T4 T5
T7 T8
Transient
unavailability
1. …
6. Done! However one member
becomes zombie now
7. Zombie member rejoins
8. Zombie resets generation and
rejoins
59Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5
T7 T8
Transient
unavailability
1. …
6. Done! However one member
becomes zombie now
7. Zombie member rejoins
8. Zombie resets generation and
rejoins
9. Coordinator requires all
members to revoke tasks/rejoin
60Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5T3T1 T2
T7 T8
Transient
unavailability
1. …
6. Done! However one member
becomes zombie now
7. Zombie member rejoins
8. Zombie resets generation and
rejoins
9. Coordinator requires all
members to revoke tasks/rejoin
10. Perform assignment (different
from last time)
61Coordinator
T1 T2 T7
T5T4 T8
T3
T6
T6T4 T5T3T1 T2
T7 T8
Transient
unavailability
1. …
6. Done! However one member
becomes zombie now
7. Zombie member rejoins
8. Zombie resets generation and
rejoins
9. Coordinator requires all
members to revoke tasks/rejoin
10. Perform assignment (different
from last time)
11. Propagate, and done!
62Coordinator
T1 T2 T7
T5T4 T8
T3
T6
T6T3T7T1 T2 T8T4 T5
Transient
unavailability
● An unnecessary assignment
change
63Coordinator
T1 T2 T7
T5T4 T8
T3
T6
T6T3T7T1 T2 T8T4 T5
T3T1 T2 T6T4 T5 T8T7
Transient
unavailability
● An unnecessary assignment
change
● Solution:
○ Increase session.timeout.ms
64Coordinator
T1 T2 T7
T5T4 T8
T3
T6
T6T3T7T1 T2 T8T4 T5
T3T1 T2 T6T4 T5 T8T7
65
Task recovery time breakdown
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
? ? ?
66
Task recovery time breakdown
Better stickiness
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
? ? ?
67
Task recovery time breakdown
Better stickiness
Not necessarily better recovery time
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
Rolling bounce
68Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
ID: m1 ID: m2 ID: m3
m1, m2, m3
Members
Rolling bounce
1. Restart member fleet
69Coordinator
T1 T2 T3
T5T4 T6
T7
T8
ID: -- ID: -- ID: --
m1, m2, m3
Members
T3T1 T2 T6T4 T5 T8T7
Rolling bounce
1. Restart member fleet
70Coordinator
T1 T2 T3
T5T4 T6
T7
T8
ID: -- ID: -- ID: --
m1, m2, m3
Members
T3T1 T2 T6T4 T5 T8T7
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
71Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5T3T1 T2 T8T7
ID: -- ID: -- ID: --
Members
[ ]
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
72Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5T3T1 T2 T8T7
ID: -- ID: -- ID: --
Members
m4
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
73Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5T3T1 T2 T8T7
ID: -- ID: -- ID: --
Members
m4, m5
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
74Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5T3T1 T2 T8T7
ID: -- ID: -- ID: --
Members
m4, m5, m6
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
4. Member assignment gets
shuffled
75Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5T3T1 T2 T8T7
m4, m5, m6
Members
ID: -- ID: -- ID: --
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
4. Member assignment gets
shuffled
76Coordinator
T7 T4 T3
T5T2 T8
T1
T6
T6T4 T5T3T1 T2 T8T7
ID: -- ID: -- ID: --
m4, m5, m6
Members
Rolling bounce
77Coordinator
T7 T4 T3
T5T2 T8
T1
T6
T6T4 T5T3T1 T2 T8T7
ID: -- ID: -- ID: --
m4, m5, m6
Members
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
4. Member assignment gets
shuffled
5. Perform assignment, and new
member id
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
4. Member assignment gets
shuffled
5. Perform assignment, and new
member id
78Coordinator
T7 T4 T3
T5T2 T8
T1
T6
T6T4 T5 T8T7
ID: m4 ID: -- ID: --
m4, m5, m6
Members
T7T3 T4
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
4. Member assignment gets
shuffled
5. Perform assignment, and new
member id
79Coordinator
T7 T4 T3
T5T2 T8
T1
T6
T8T7
ID: m4 ID: m5 ID: --
m4, m5, m6
Members
T7T3 T4 T8T2 T5
Rolling bounce
1. Restart member fleet
2. Some member sends leave
group request
3. Members rejoin
4. Member assignment gets
shuffled
5. Perform assignment, and new
member id
6. Propagate…
7. Done!
80Coordinator
T7 T3 T4
T5T2 T8
T1
T6
T6T1T7T3 T4 T8T2 T5
ID: m4 ID: m5 ID: m6
m4, m5, m6
Members
Rolling bounce
● Another unnecessary
assignment change
81Coordinator
T7 T3 T4
T5T2 T8
T1
T6
T6T1T7T3 T4 T8T2 T5
T3T1 T2 T6T4 T5 T8T7
● Another unnecessary
assignment change
● No persistence of member
identity. After restart, the
member is unknown to the
coordinator
Rolling bounce
82Coordinator
T7 T3 T4
T5T2 T8
T1
T6
T6T1T7T3 T4 T8T2 T5
T3T1 T2 T6T4 T5 T8T7
m1, m2, m3
m4, m5, m6
Members
Rolling bounce
● Another unnecessary
assignment change
● No persistence of member
identity. After restart, the
member is unknown to the
coordinator.
83Coordinator
T7 T3 T4
T5T2 T8
T1
T6
T6T1T7T3 T4 T8T2 T5
T3T1 T2 T6T4 T5 T8T7
m1, m2, m3
m4, m5, m6
Members
84
84
84
Static Membership
Static Membership
Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
85
Static Membership
● Give each member a unique ID
○ Configuration:
group.instance.id
86Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
ID: w1 ID: w2 ID: w3
86
Static Membership
● Give each member a unique ID
○ Configuration:
group.instance.id
○ Remember assignment info
on the coordinator
87Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
ID: w1 ID: w2 ID: w3
87
Static Membership
● Give each member a unique ID
○ Configuration:
group.instance.id
○ Remember assignment info
on the coordinator
○ A static member never
sends a “leave group”
request
88Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
ID: w1 ID: w2 ID: w3
88
Static Membership
● Give each member a unique ID
○ Configuration:
group.instance.id
○ Remember assignment info
on the coordinator
○ A static member never
sends a “leave group”
request
○ No rebalance upon known
static member rejoin
89Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
ID: w1 ID: w2 ID: w3
89
Static Membership
1. Restart member fleet
90Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
ID: w1 ID: w2 ID: w3
90
Static Membership
1. Restart member fleet
2. Member w1 rejoins
91Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5 T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2
91
Static Membership
1. Restart member fleet
2. Member w1 rejoins
3. Coordinator gets w1’s
assignment
92Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5 T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2
92
Static Membership
1. Restart member fleet
2. Member w1 rejoins
3. Coordinator gets w1’s
assignment
4. Member w1 gets the same
assignment
93Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T6T4 T5 T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2
93
Static Membership
1. …
5. Member w2 rejoins
94Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
94
Static Membership
1. …
5. Member w2 rejoins
6. Coordinator gets w2’s
assignment
95Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
95
Static Membership
1. …
5. Member w2 rejoins
6. Coordinator gets w2’s
assignment
7. Member w2 gets the same
assignment
96Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
96
Static Membership
1. …
8. Member w3 rejoins
97Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
97
Static Membership
1. …
8. Member w3 rejoins
9. Coordinator gets w3’s
assignment
98Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
98
Static Membership
1. …
8. Member w3 rejoins
9. Coordinator gets w3’s
assignment
10. Member w3 gets the same
assignment
Done!
99Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
99
100
Task recovery time breakdown
Better stickiness
Not necessarily better recovery time
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
101
Task recovery time breakdown
Better stickiness
Not necessarily better recovery time
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
Dynamic Membership
102
Task recovery time breakdown
Better stickiness
Unnecessary rebalance rate drop!
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
Static Membership
To opt into Static
Membership
103Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
103
To opt into Static
Membership
● Set broker version >= 2.3
104Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
104
To opt into Static
Membership
● Set broker version >= 2.3
● Set config group.instance.id
105Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
105
To opt into Static
Membership
● Set broker version >= 2.3
● Set config group.instance.id
● Set session timeout long enough
106Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
106
To opt into Static
Membership
● Set broker version >= 2.3
● Set config group.instance.id
● Set session timeout long enough
● More details here.
107Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
107
Scaling Static
Members
108Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
108
Members
w1 -> m1,
w2 -> m2
Members
ID: w2
T6T4 T5
Scaling Static
Members
1. Member w2 steps down
109Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
109
Members
w1 -> m1,
w2 -> m2
Members
ID: w2
T6T4 T5
Scaling Static
Members
1. Member w2 steps down
2. It won’t call leave group, so
coordinator won’t rebalance, thus
T4~T6 make no progress
110Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
110
Members
w1 -> m1,
w2 -> m2
Members
ID: w2
T6T4 T5
Scaling Static
Members
1. Member w2 steps down
2. It won’t call leave group, so
coordinator won’t rebalance, thus
T4~T6 make no progress
3. Until session timeout, the
coordinator removes w2 starts
rebalancing
111Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
111
Members
w1 -> m1,
w2 -> m2
Members
Scaling Static
Members
112Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
112
Members
w1 -> m1,
w2 -> m2
Members
ID: w2
T6T4 T5 Admin
Scaling Static
Members
1. Member w2 steps down
113Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
113
Members
w1 -> m1,
w2 -> m2
Members
ID: w2
T6T4 T5 Admin
Scaling Static
Members
1. Member w2 steps down
2. Use admin client to remove static
members
114Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
114
Members
w1 -> m1,
w2 -> m2
Members
ID: w2
T6T4 T5 Admin
Remove W2
Scaling Static
Members
1. Member w2 steps down
2. Use admin client to remove static
members
3. Group starts rebalancing
immediately
115Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
115
Members
w1 -> m1,
w2 -> m2
Members
Admin
Scaling Static
Members
1. Member w2 steps down
2. Use admin client to remove static
members
3. Group starts rebalancing
immediately
4. T4 ~ T6 have no excessive
downtime!
116Coordinator
T1 T2 T3
T5T4 T6
ID: w1
T3T1 T2
116
Members
w1 -> m1
Members
AdminT6T4 T5
117
117
117
Static Membership vs
Incremental Cooperative
Rebalancing
118
Kafka Streams
Consumer
Input Partitions
Output
Partitions
state
state
state
Producer
Consumer
Producer
session timeout → rebalance time
119
Kafka Streams
Input Partitions
Output
Partitions
state
state
Consumer
Producer
session timeout → rebalance time→ task revoke time
120
Kafka Streams
Input Partitions
Output
Partitions
state
state
Consumer
Producer
session timeout → rebalance time→ task revoke time
121
Kafka Streams
Input Partitions
Output
Partitions
state
state
Consumer
Producer
session timeout → rebalance time→ task revoke time
122
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time
Consumer
123
Kafka Streams
Input Partitions
Output
Partitions
state
Producer
state
state
session timeout → rebalance time → task assignment time
Consumer
124
Kafka Streams
Input Partitions
Output
Partitions
state
Consumer
Producer
state
state
session timeout → rebalance time → task assignment time
125
Kafka Streams
Input Partitions
Output
Partitions
state
Consumer
Producer
state
state
session timeout → rebalance time → task assignment time
Stop-the-world effect: unnecessary task
revoke and assignment
Incremental Cooperative
Rebalancing
126Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
ID: m1 ID: m2 ID: m3
m1, m2, m3
Members
1. Member m3 restarts
127Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5
ID: m1 ID: m2 ID: m3
m1, m2, m3
Members
T8T7
Incremental Cooperative
Rebalancing
1. Member m3 restarts
2. m3 loses its identity and rejoin
128Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5
ID: m1 ID: m2 ID: --
m1, m2, m3
Members
T8T7
Incremental Cooperative
Rebalancing
1. Member m3 restarts
2. m3 loses its identity and rejoin
3. m1 and m2 rejoin without
revoking tasks
129Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5
ID: m1 ID: m2 ID: --
m1, m2, m3
Members
T8T7
Incremental Cooperative
Rebalancing
1. Member m3 restarts
2. m3 loses its identity and rejoin
3. m1 and m2 rejoin without
revoking tasks
4. Compute new assignment
130Coordinator
T1 T2 T7
T5T4 T6
T3
T8
T3T1 T2 T6T4 T5
ID: m1 ID: m2 ID: m4
m1, m2,
m3, m4
Members
T8T7
Incremental Cooperative
Rebalancing
1. Member m3 restarts
2. m3 loses its identity and rejoin
3. m1 and m2 rejoin without
revoking tasks
4. Compute new assignment
5. Propagate new assignment
131Coordinator
T1 T2 T7
T5T4 T6
T3
T8
T3T1 T2 T6T4 T5
ID: m1 ID: m2 ID: m4
m1, m2, m4
Members
T8T3
Incremental Cooperative
Rebalancing
1. …
6. Member m1 assignment
conflicts with previous
assignment
132Coordinator
T1 T2 T7
T5T4 T6
T3
T8
T3T1 T2 T6T4 T5
ID: m1 ID: m2 ID: m4
m1, m2, m4
Members
T8T3
Incremental Cooperative
Rebalancing
1. …
6. Member m1 assignment
conflicts with previous
assignment
7. Member m1 rejoins with T3
revoked
133Coordinator
T1 T2 T7
T5T4 T6
T3
T8
T3T1 T2 T6T4 T5
ID: m1 ID: m2 ID: m4
m1, m2, m4
Members
T8T3
Incremental Cooperative
Rebalancing
1. …
6. Member m1 assignment
conflicts with previous
assignment
7. Member m1 rejoins with T3
revoked
8. Member m2 and m3 rejoin
without revoking any task
134Coordinator
T1 T2 T7
T5T4 T6
T3
T8
T3T1 T2 T6T4 T5
ID: m1 ID: m2 ID: m4
m1, m2, m4
Members
T8T3
Incremental Cooperative
Rebalancing
1. …
6. Member m1 assignment
conflicts with previous
assignment
7. Member m1 rejoins with T3
revoked
8. Member m2 and m3 rejoin
without revoking any task
9. Finalize assignment by second
rebalance!
135Coordinator
T1 T2 T7
T5T4 T6
T3
T8
T7T1 T2 T6T4 T5
ID: m1 ID: m2 ID: m4
m1, m2, m4
Members
T8T3
Incremental Cooperative
Rebalancing
1. …
6. Member m1 assignment
conflicts with previous
assignment
7. Member m1 rejoins with T3
revoked
8. Member m2 and m3 rejoin
without revoking any task
9. Finalize assignment by second
rebalance!
136Coordinator
T1 T2 T7
T5T4 T6
T3
T8
T7T1 T2 T6T4 T5
ID: m1 ID: m2 ID: m4
m1, m2, m4
Members
T8T3
Incremental Cooperative
Rebalancing
137
Task recovery time breakdown
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
Incremental Cooperative Rebalancing
138
Task recovery time breakdown
Highly efficient rebalance
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
Incremental Cooperative Rebalancing
139
Task recovery time breakdown
Highly efficient rebalance
A sticky assignment protocol
Session
timeout
(Failure
detection)
Rebalance
time
(time to shuffle
tasks)
Task
assignment
time
State restore
time
(replay from
changelog)
Configurable
Semi-configurable
Non-configurable
Incremental Cooperative Rebalancing
140
140
140
Static Membership under
non-sticky assignment
141
141
Range
assignor
1. Assign tasks based
on relative order
141Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5 T8T7
ID: m1 ID: m2 ID: m3
m1, m2, m3
Members
Generation 1
142
142
Range
assignor
142Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5T8T7
ID: m4 ID: m6 ID: m5
m1, m2, m3
m4, m6, m5
Members
Generation 1
Generation 2
1. Assign tasks based
on relative order
2. On generation 2,
relative order based
on ephemeral ID shall
change
143
143
Range
assignor
143Coordinator
T1 T2 T3
T5T4 T6
T7
T8
T3T1 T2 T6T4 T5T8T7
ID: m4 ID: m6 ID: m5
m1, m2, m3
m4, m6, m5
Members
Generation 1
Generation 2
1. Assign tasks based
on relative order
2. On generation 2,
relative order based
on ephemeral ID shall
change
3. So does the
assignment
144
144
Range
assignor
144Coordinator
T1 T2 T3
T5T4 T6
T7
T8
w1 -> m1,
w2 -> m2,
w3 -> m3
Members
Generation 1
1. …
4. Honor static instance
ID over ephemeral
member ID
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
145
145
Range
assignor
145Coordinator
T1 T2 T3
T5T4 T6
T7
T8
w1 -> m4,
w2 -> m6,
w3 -> m5
Members
Generation 1
Generation 2
1. …
4. Honor static instance
ID over ephemeral
member ID
5. Assignment won’t
change in a rebalance
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
146
146
Range
assignor
146Coordinator
T1 T2 T3
T5T4 T6
T7
T8
w1 -> m4,
w2 -> m6,
w3 -> m5
Members
Generation 2
1. …
4. Honor static instance
ID over ephemeral
member ID
5. Assignment won’t
change in a rebalance
6. Same for round robin
assignment
T8T7
ID: w1 ID: w2 ID: w3
T3T1 T2 T6T4 T5
147
147
Static
Membership
VS
Incremental
Cooperative
Rebalancing
Static
Membership
Incremental
Cooperative
Rebalancing
148
148
Static
Membership
VS
Incremental
Cooperative
Rebalancing
Static
Membership
Incremental
Cooperative
Rebalancing
Goal Reduce unnecessary
rebalance
Improve rebalance
efficiency, reducing
stop-the-world effect
149
149
Static
Membership
VS
Incremental
Cooperative
Rebalancing
Static
Membership
Incremental
Cooperative
Rebalancing
Goal Reduce unnecessary
rebalance
Improve rebalance
efficiency, reducing
stop-the-world effect
Scope Improve both sticky
and non-sticky
assignment protocols
A sticky assignment
protocol
150
150
Static
Membership
VS
Incremental
Cooperative
Rebalancing
Static
Membership
Incremental
Cooperative
Rebalancing
Goal Reduce unnecessary
rebalance
Improve rebalance
efficiency, reducing
stop-the-world effect
Scope Improve both sticky
and non-sticky
assignment protocols
A sticky assignment
protocol
Change Domain Broker + Client Client only (Easier to
adopt!)
151
151
151151
Takeaways
152
152
152152
● Understand the concepts
○ Session timeout
○ Member ID
○ Group instance ID
Takeaways
153
153
153153
● Understand the concepts
○ Session timeout
○ Member ID
○ Group instance ID
● Why reducing the session timeout not necessarily improve overall
recovery time?
Takeaways
154
154
154154
● Understand the concepts
○ Session timeout
○ Member ID
○ Group instance ID
● Why reducing the session timeout not necessarily improve overall
recovery time?
● Why Static Membership could improve the rolling bounce behavior?
Takeaways
155
155
155155
● Understand the concepts
○ Session timeout
○ Member ID
○ Group instance ID
● Why reducing the session timeout not necessarily improve overall
recovery time?
● Why Static Membership could improve the rolling bounce behavior?
● Do you understand how to enable Static Membership?
Takeaways
156
156
156156
● Understand the concepts
○ Session timeout
○ Member ID
○ Group instance ID
● Why reducing the session timeout not necessarily improve overall
recovery time?
● Why Static Membership could improve the rolling bounce behavior?
● Do you understand how to enable Static Membership?
● How does Static Membership compare with Incremental Cooperative
Rebalancing?
Takeaways
157
Resources
• Static Membership blog: https://www.confluent.io/blog/kafka-rebalance-protocol-static-membership
• KIP-62: Allow consumer to send heartbeats from a background thread
• KIP-345: Introduce Static Membership protocol to reduce consumer rebalances
• Incremental Cooperative Rebalancing blog:
https://www.confluent.io/blog/incremental-cooperative-rebalancing-in-kafka
• KIP-415: Incremental Cooperative Rebalancing in Kafka Connect
• KIP-429: Kafka Consumer Incremental Rebalance Protocol
158
Contact
• Liquan Pei: liquanpei@pinterest.com
• Boyang Chen: boyang@confluent.io

More Related Content

What's hot

Enabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkEnabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkKazuaki Ishizaki
 
Producer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaProducer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaJiangjie Qin
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Flink Forward
 
Apache Flink internals
Apache Flink internalsApache Flink internals
Apache Flink internalsKostas Tzoumas
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistentconfluent
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka StreamsGuozhang Wang
 
Performance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State StoresPerformance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State Storesconfluent
 
How to tune Kafka® for production
How to tune Kafka® for productionHow to tune Kafka® for production
How to tune Kafka® for productionconfluent
 
Building a SIMD Supported Vectorized Native Engine for Spark SQL
Building a SIMD Supported Vectorized Native Engine for Spark SQLBuilding a SIMD Supported Vectorized Native Engine for Spark SQL
Building a SIMD Supported Vectorized Native Engine for Spark SQLDatabricks
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registryconfluent
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxData
 
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...confluent
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practicesconfluent
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlJiangjie Qin
 
Hive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas PatilHive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas PatilDatabricks
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesDatabricks
 
Spark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van HovellSpark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van HovellSpark Summit
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka IntroductionAmita Mirajkar
 
Architecture Patterns for Event Streaming (Nick Dearden, Confluent) London 20...
Architecture Patterns for Event Streaming (Nick Dearden, Confluent) London 20...Architecture Patterns for Event Streaming (Nick Dearden, Confluent) London 20...
Architecture Patterns for Event Streaming (Nick Dearden, Confluent) London 20...confluent
 

What's hot (20)

Enabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache SparkEnabling Vectorized Engine in Apache Spark
Enabling Vectorized Engine in Apache Spark
 
Producer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache KafkaProducer Performance Tuning for Apache Kafka
Producer Performance Tuning for Apache Kafka
 
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
 
Apache Flink internals
Apache Flink internalsApache Flink internals
Apache Flink internals
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistent
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
Performance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State StoresPerformance Tuning RocksDB for Kafka Streams’ State Stores
Performance Tuning RocksDB for Kafka Streams’ State Stores
 
How to tune Kafka® for production
How to tune Kafka® for productionHow to tune Kafka® for production
How to tune Kafka® for production
 
Building a SIMD Supported Vectorized Native Engine for Spark SQL
Building a SIMD Supported Vectorized Native Engine for Spark SQLBuilding a SIMD Supported Vectorized Native Engine for Spark SQL
Building a SIMD Supported Vectorized Native Engine for Spark SQL
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registry
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
 
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
 
Kafka 101 and Developer Best Practices
Kafka 101 and Developer Best PracticesKafka 101 and Developer Best Practices
Kafka 101 and Developer Best Practices
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 
Hive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas PatilHive Bucketing in Apache Spark with Tejas Patil
Hive Bucketing in Apache Spark with Tejas Patil
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization Opportunities
 
Spark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van HovellSpark Summit EU talk by Herman van Hovell
Spark Summit EU talk by Herman van Hovell
 
Apache Kafka Introduction
Apache Kafka IntroductionApache Kafka Introduction
Apache Kafka Introduction
 
Architecture Patterns for Event Streaming (Nick Dearden, Confluent) London 20...
Architecture Patterns for Event Streaming (Nick Dearden, Confluent) London 20...Architecture Patterns for Event Streaming (Nick Dearden, Confluent) London 20...
Architecture Patterns for Event Streaming (Nick Dearden, Confluent) London 20...
 
Kafka internals
Kafka internalsKafka internals
Kafka internals
 

Similar to Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Confluent & Liquan Pei, Pinterest) Kafka Summit SF 2019

Apache Kafka Rebalance Protocol for the Cloud: Static Membership
Apache Kafka Rebalance Protocol for the Cloud: Static MembershipApache Kafka Rebalance Protocol for the Cloud: Static Membership
Apache Kafka Rebalance Protocol for the Cloud: Static Membershipconfluent
 
Getting the Balance Right with Kafka Connect
Getting the Balance Right with Kafka ConnectGetting the Balance Right with Kafka Connect
Getting the Balance Right with Kafka ConnectHostedbyConfluent
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controllerconfluent
 
The Next Generation of the Consumer Rebalance Protocol with David Jacot
The Next Generation of the Consumer Rebalance Protocol with David JacotThe Next Generation of the Consumer Rebalance Protocol with David Jacot
The Next Generation of the Consumer Rebalance Protocol with David JacotHostedbyConfluent
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controllerconfluent
 
Design and Implementation of Incremental Cooperative Rebalancing
Design and Implementation of Incremental Cooperative RebalancingDesign and Implementation of Incremental Cooperative Rebalancing
Design and Implementation of Incremental Cooperative Rebalancingconfluent
 
Why stop the world when you can change it? Design and implementation of Incre...
Why stop the world when you can change it? Design and implementation of Incre...Why stop the world when you can change it? Design and implementation of Incre...
Why stop the world when you can change it? Design and implementation of Incre...confluent
 
KubeFlow + GPU + Keras/TensorFlow 2.0 + TF Extended (TFX) + Kubernetes + PyTo...
KubeFlow + GPU + Keras/TensorFlow 2.0 + TF Extended (TFX) + Kubernetes + PyTo...KubeFlow + GPU + Keras/TensorFlow 2.0 + TF Extended (TFX) + Kubernetes + PyTo...
KubeFlow + GPU + Keras/TensorFlow 2.0 + TF Extended (TFX) + Kubernetes + PyTo...Chris Fregly
 
Kafka Summit NYC 2017 - Deep Dive Into Apache Kafka
Kafka Summit NYC 2017 - Deep Dive Into Apache KafkaKafka Summit NYC 2017 - Deep Dive Into Apache Kafka
Kafka Summit NYC 2017 - Deep Dive Into Apache Kafkaconfluent
 
Bw tree presentation
Bw tree presentationBw tree presentation
Bw tree presentationDaeIn Lee
 
Dynamic Load-balancing On Graphics Processors
Dynamic Load-balancing On Graphics ProcessorsDynamic Load-balancing On Graphics Processors
Dynamic Load-balancing On Graphics Processorsdaced
 
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and PinotExactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and PinotFlink Forward
 
Synthesizing Concurrent Schedulers for Irregular Algorithms
Synthesizing Concurrent Schedulers for Irregular AlgorithmsSynthesizing Concurrent Schedulers for Irregular Algorithms
Synthesizing Concurrent Schedulers for Irregular AlgorithmsDonald Nguyen
 
淺談 Live patching technology
淺談 Live patching technology淺談 Live patching technology
淺談 Live patching technologySZ Lin
 
JDD2015: Make your world event driven - Krzysztof Dębski
JDD2015: Make your world event driven - Krzysztof DębskiJDD2015: Make your world event driven - Krzysztof Dębski
JDD2015: Make your world event driven - Krzysztof DębskiPROIDEA
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaShiao-An Yuan
 
PostgreSQL major version upgrade using built in Logical Replication
PostgreSQL major version upgrade using built in Logical ReplicationPostgreSQL major version upgrade using built in Logical Replication
PostgreSQL major version upgrade using built in Logical ReplicationAtsushi Torikoshi
 
Reaching reliable agreement in an unreliable world
Reaching reliable agreement in an unreliable worldReaching reliable agreement in an unreliable world
Reaching reliable agreement in an unreliable worldHeidi Howard
 

Similar to Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Confluent & Liquan Pei, Pinterest) Kafka Summit SF 2019 (20)

Apache Kafka Rebalance Protocol for the Cloud: Static Membership
Apache Kafka Rebalance Protocol for the Cloud: Static MembershipApache Kafka Rebalance Protocol for the Cloud: Static Membership
Apache Kafka Rebalance Protocol for the Cloud: Static Membership
 
Getting the Balance Right with Kafka Connect
Getting the Balance Right with Kafka ConnectGetting the Balance Right with Kafka Connect
Getting the Balance Right with Kafka Connect
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
 
The Next Generation of the Consumer Rebalance Protocol with David Jacot
The Next Generation of the Consumer Rebalance Protocol with David JacotThe Next Generation of the Consumer Rebalance Protocol with David Jacot
The Next Generation of the Consumer Rebalance Protocol with David Jacot
 
A Deep Dive into Kafka Controller
A Deep Dive into Kafka ControllerA Deep Dive into Kafka Controller
A Deep Dive into Kafka Controller
 
Design and Implementation of Incremental Cooperative Rebalancing
Design and Implementation of Incremental Cooperative RebalancingDesign and Implementation of Incremental Cooperative Rebalancing
Design and Implementation of Incremental Cooperative Rebalancing
 
Why stop the world when you can change it? Design and implementation of Incre...
Why stop the world when you can change it? Design and implementation of Incre...Why stop the world when you can change it? Design and implementation of Incre...
Why stop the world when you can change it? Design and implementation of Incre...
 
KubeFlow + GPU + Keras/TensorFlow 2.0 + TF Extended (TFX) + Kubernetes + PyTo...
KubeFlow + GPU + Keras/TensorFlow 2.0 + TF Extended (TFX) + Kubernetes + PyTo...KubeFlow + GPU + Keras/TensorFlow 2.0 + TF Extended (TFX) + Kubernetes + PyTo...
KubeFlow + GPU + Keras/TensorFlow 2.0 + TF Extended (TFX) + Kubernetes + PyTo...
 
Kafka Summit NYC 2017 - Deep Dive Into Apache Kafka
Kafka Summit NYC 2017 - Deep Dive Into Apache KafkaKafka Summit NYC 2017 - Deep Dive Into Apache Kafka
Kafka Summit NYC 2017 - Deep Dive Into Apache Kafka
 
Pipelining Cache
Pipelining CachePipelining Cache
Pipelining Cache
 
Pipelining cache
Pipelining cachePipelining cache
Pipelining cache
 
Bw tree presentation
Bw tree presentationBw tree presentation
Bw tree presentation
 
Dynamic Load-balancing On Graphics Processors
Dynamic Load-balancing On Graphics ProcessorsDynamic Load-balancing On Graphics Processors
Dynamic Load-balancing On Graphics Processors
 
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and PinotExactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
 
Synthesizing Concurrent Schedulers for Irregular Algorithms
Synthesizing Concurrent Schedulers for Irregular AlgorithmsSynthesizing Concurrent Schedulers for Irregular Algorithms
Synthesizing Concurrent Schedulers for Irregular Algorithms
 
淺談 Live patching technology
淺談 Live patching technology淺談 Live patching technology
淺談 Live patching technology
 
JDD2015: Make your world event driven - Krzysztof Dębski
JDD2015: Make your world event driven - Krzysztof DębskiJDD2015: Make your world event driven - Krzysztof Dębski
JDD2015: Make your world event driven - Krzysztof Dębski
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
PostgreSQL major version upgrade using built in Logical Replication
PostgreSQL major version upgrade using built in Logical ReplicationPostgreSQL major version upgrade using built in Logical Replication
PostgreSQL major version upgrade using built in Logical Replication
 
Reaching reliable agreement in an unreliable world
Reaching reliable agreement in an unreliable worldReaching reliable agreement in an unreliable world
Reaching reliable agreement in an unreliable world
 

More from confluent

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flinkconfluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluentconfluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkconfluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloudconfluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluentconfluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservicesconfluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernizationconfluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataconfluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesisconfluent
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023confluent
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streamsconfluent
 

More from confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Static Membership: Rebalance Strategy Designed for the Cloud (Boyang Chen,Confluent & Liquan Pei, Pinterest) Kafka Summit SF 2019