SlideShare ist ein Scribd-Unternehmen logo
1 von 171
Streaming a million likes/second
Real-time interactions on Live Video
Akhilesh Gupta
Realtime Engineer, LinkedIn
2
InfoQ.com: News & Community Site
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
linkedin-play-akka-distributed-
systems/
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon London
www.qconlondon.com
tiny.cc/qconlive
3
Login with LinkedIn
credentials
Which was the largest live stream in the world?
(largest number of concurrent viewers)
?
4
INDIA VS NEW ZEALAND WORLD CUP
Largest Live Stream
>25.3M
viewers
© The Indian Express https://images.indianexpress.com/2019/06/13th-june_india-vs-new-zealand_759.jpg
5
6
D i s t r i b u t e d S y s t e m s
Start small and add simple layers to your
architecture
7
8
What is a Live Video?
9
What are real-time interactions
on Live Video?
10
Mobile
LINKEDIN LIVE
Likes/Comments
Concurrent Viewer Counts
11
LINKEDIN LIVE
Desktop
Likes/Comments
Concurrent Viewer Counts
12
Distribution of Likes
A
S
13
Distribution of Likes
A
S
Simple HTTP Request
14
Distribution of Likes
A
S
Simple HTTP Request
?
15
Challenge 1:The delivery pipe
16
The delivery pipe
Real-time
Delivery
A
S
Likes Backend (Publisher) 17
The delivery pipe
Real-time
Delivery
A
S
Likes Backend (Publisher)
Simple HTTP Request
18
The delivery pipe
Real-time
Delivery
A
S
Likes Backend (Publisher)
Persistent Connection
19
The delivery pipe
Real-time
Delivery
A
S
Likes Backend (Publisher)
Persistent Connection
20
Persistent Connection
Real-time
Delivery
21
TRY IT!
Login at linkedin.com
Persistent Connection
tiny.cc/realtime
22
23
EVENTSOURCE INTERFACE CLIENT REQUEST
HTTP Long Poll with Server Sent Events
GET /connect HTTP/1.1
Accept: text/event-stream
24
EVENTSOURCE INTERFACE SERVER RESPONSE
HTTP Long Poll with Server Sent Events
HTTP/1.1 200 OK
- RESPONSE HEADERS -
Content-Type: text/event-stream
25
EVENTSOURCE INTERFACE SERVER RESPONSE
HTTP Long Poll with Server Sent Events
HTTP/1.1 200 OK
- RESPONSE HEADERS -
Content-Type: text/event-stream
- RESPONSE BODY -
data: {“like” object}
26
EVENTSOURCE INTERFACE SERVER RESPONSE
HTTP Long Poll with Server Sent Events
HTTP/1.1 200 OK
- RESPONSE HEADERS -
Content-Type: text/event-stream
- RESPONSE BODY -
data: {“like” object}
..
data: {“comment” object}
27
EVENTSOURCE INTERFACE SERVER RESPONSE
HTTP Long Poll with Server Sent Events
HTTP/1.1 200 OK
- RESPONSE HEADERS -
Content-Type: text/event-stream
- RESPONSE BODY -
data: {“like” object}
..
data: {“comment” object}
..
data: {“like” object}
28
WEB
EventSource Client Libraries
var evtSource =
new EventSource("https://www.linkedin.com/realtime/connect");
evtSource.onmessage = function(e) {
var likeObject = JSON.parse(e.data);
}
29
ANDROID & IOS SUPPORT
EventSource Client Libraries
Android: https://github.com/tylerjroach/eventsource-android
iOS Swift: https://github.com/inaka/EventSource
30
Next Challenge?
Real-time
Delivery
31
Next Challenge: Multiple Connections
Real-time
Delivery
32
Challenge 2: Connection Management
33
PLAY & AKKA
Connection Management
Akka is a toolkit for building highly concurrent,
distributed, and resilient message-driven applications
34
© Disney, All Rights Reserved, Pirates of the Caribbean
35
AN AKKA ACTOR
Connection Management
State
Behavior
36
AN AKKA ACTOR
Connection Management
State
Behavior
ABC
Mailbox
One per Actor
37
AN AKKA ACTOR
Connection Management
State
Behavior
ABC
Mailbox
One per Actor
38
AN AKKA ACTOR
Connection Management
State
Behavior
ABC
Mailbox
One per Actor
Millions of Actors
39
AN AKKA ACTOR
Connection Management
State
Behavior
ABC
Mailbox
One per Actor
No. of threads proportional to
no. of cores
Millions of Actors
40
AN AKKA ACTOR
Connection Management
Connection
Publish Event
ABC
Events to be published
Millions of Connections
41
INITIALIZE AN AKKA ACTOR
Server: Accepting a EventSource connection
// Client A connects to the server and is assigned connectionIdA
public Result listen() {
} 42
INITIALIZE AN AKKA ACTOR
Server: Accepting a EventSource connection
// Client A connects to the server and is assigned connectionIdA
public Result listen() {
return ok(EventSource.whenConnected(eventSource -> {
String connectionId = UUID.randomUUID().toString();
}));
} 43
INITIALIZE AN AKKA ACTOR
Server: Accepting a EventSource connection
// Client A connects to the server and is assigned connectionIdA
public Result listen() {
return ok(EventSource.whenConnected(eventSource -> {
String connectionId = UUID.randomUUID().toString();
// construct an Akka Actor to manage connection
_actorSystem.actorOf(
ClientConnectionActor.props(connectionId, eventSource),
connectionId
);
}));
} 44
Publish Events Using Akka Actors
Akka
Actor
Real-time
Delivery
System
Connection ID
cid1
45
EVENT PUBLISH FROM PUBLISHER
Publish Events Using Akka Actors
Actor 1
Real-time
Delivery
System
Actor 2
Actor 3
Actor 4
Actor 5
Akka
Supervisor
Actor
cid1
cid2
cid3
cid4
cid5
46
EVENT PUBLISH FROM SUPERVISOR TO CHILD ACTORS
Publish Events Using Akka Actors
Actor 1
Real-time
Delivery
System
Actor 2
Actor 3
Actor 4
Actor 5
Akka
Supervisor
Actor
cid1
cid2
cid3
cid4
cid5
47
EVENT PUBLISH FROM CHILD ACTORS TO CLIENT CONNECTIONS
Publish Events Using Akka Actors
Actor 1
Real-time
Delivery
System
Actor 2
Actor 3
Actor 4
Actor 5
Akka
Supervisor
Actor
cid1
cid2
cid3
cid4
cid5
48
EVENT PUBLISH FROM CHILD ACTORS TO CLIENT CONNECTIONS
Publishing on EventSource
eventSource.send(<like object>);
49
EVENT PUBLISH FROM CHILD ACTORS TO CLIENT CONNECTIONS
Publish Events Using Akka Actors
Actor 1
Real-time
Delivery
System
Actor 2
Actor 3
Actor 4
Actor 5
Akka
Supervisor
Actor
cid1
cid2
cid3
cid4
cid5
50
EVENT PUBLISH FROM CHILD ACTORS TO CLIENT CONNECTIONS
Publish Events Using Akka Actors
Actor 1
Real-time
Delivery
System
Actor 2
Actor 3
Actor 4
Actor 5
Akka
Supervisor
Actor
cid1
cid2
cid3
cid4
cid5
51
EVENTSOURCE INTERFACE
Received Events on the Clients
HTTP/1.1 200 OK
- RESPONSE HEADERS -
Content-Type: text/event-stream
- RESPONSE BODY -
data: {“User A liked the video…” object}
52
Next Challenge?
Real-time
Delivery
53
Next Challenge: Multiple Live Videos
Real-time
Delivery
54
Challenge 3:Multiple Live Videos
55
START WATCHING LIVE VIDEO
Multiple Live Videos
cid3
cid5
Live Video 1
Live Video 2
Real-time
Delivery
System
56
HTTP SUBSCRIPTION REQUEST
Viewers subscribe to Live Videos
Topic ConnectionId
In-Memory
Subscriptions
Table
cid3
cid5
Live Video 1
Live Video 2
/subscribe
57
IN-MEMORY SUBSCRIPTION ENTRY
Viewers subscribe to Live Videos
Topic ConnectionId
In-Memory
Subscriptions
Table
cid5
Live Video 2
/subscribe
/subscribe
cid3Live Video 1
58
IN-MEMORY SUBSCRIPTION ENTRY
Viewers subscribe to Live Videos
Topic ConnectionId
In-Memory
Subscriptions
Table
cid3
cid5
Live Video 1
Live Video 2
/subscribe
/subscribe
59
Publish using Subscription
Actor 1
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
60
PUBLISHER PUBLISH TO SUPERVISOR ACTOR
Publish using Subscription
Actor 1
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
61
SUBSCRIBER LOOKUP FROM IN MEMORY TABLE
Publish using Subscription
Actor 1
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
62
PUBLISH TO CLIENT CONNECTIONS
Publish using Subscription
Actor 1
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
63
PUBLISHER PUBLISH TO SUPERVISOR ACTOR
Publish using Subscription
Actor 1
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
64
SUBSCRIBER LOOKUP FROM IN MEMORY TABLE
Publish using Subscription
Actor 1
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
65
PUBLISH TO CLIENT CONNECTIONS
Publish using Subscription
Actor 1
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
66
Next Challenge?
Real-time
Delivery
67
Next Challenge: 10K Concurrent Viewers
Real-time
Delivery
68
Challenge 4:10K Concurrent Viewers
69
70
10K Concurrent Viewers
Real-time
Delivery
71
S C A L I N G B A C K E N D S Y S T E M S
When in doubt, add a machine!
72
10K Concurrent Viewers
Real-time
Delivery
73
10K Concurrent Viewers
Frontend
Frontend
74
10K Concurrent Viewers
Frontend
Frontend
75
DISPATCHES BETWEEN FRONTEND NODES
Real-time Dispatcher
Frontend
Frontend
Real-time Dispatcher
76
DISPATCHES BETWEEN FRONTEND NODES
Real-time Dispatcher
Frontend
Frontend
Real-time Dispatcher
77
DISPATCHES BETWEEN FRONTEND NODES
Real-time Dispatcher
Frontend
Frontend
Real-time Dispatcher
78
Frontend Node Subscriptions
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Real-time Dispatcher
79
Live Video 1
HTTP SUBSCRIPTION REQUEST
Frontend Node Subscriptions
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Topic
Frontend
Host
Real-time Dispatcher
Subscriptions
Table
/subscribe
80
Live Video 1
SUBSCRIPTIONS TABLE ENTRY
Frontend Node Subscriptions
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Topic
Frontend
Host
Real-time Dispatcher
Subscriptions
Table
/subscribe
/subscribe
81
Live Video 1
SUBSCRIPTIONS TABLE ENTRY
Frontend Node Subscriptions
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Topic
Frontend
Host
Real-time Dispatcher
Subscriptions
Table
/subscribe
/subscribe
82
node2
Live Video 1
SUBSCRIPTIONS TABLE ENTRY
Frontend Node Subscriptions
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Topic
Frontend
Host
Real-time Dispatcher
Subscriptions
Table
/subscribe
/subscribe
83
node2
Live Video 1
Publish to Frontend Nodes
node1
Real-time Dispatcher
Frontend
node2 Frontend
node3 Frontend
node4 Frontend
node5 Frontend
Live Video 1 node1
Live Video 2 node5
Live Video 2 node3
Live Video 1 node2
Live Video 2 node2
84
PUBLISHER PUBLISH TO DISPATCHER
Publish to Frontend Nodes
node1
Real-time Dispatcher
Frontend
node2 Frontend
node3 Frontend
node4 Frontend
node5 Frontend
Dispatcher
85
Live Video 1 node1
Live Video 2 node5
Live Video 2 node3
Live Video 1 node2
Live Video 2 node2
SUBSCRIBER LOOKUP
Publish to Frontend Nodes
node1
Real-time Dispatcher
Frontend
node2 Frontend
node3 Frontend
node4 Frontend
node5 Frontend
Dispatcher
86
Live Video 1 node1
Live Video 2 node5
Live Video 2 node3
Live Video 1 node2
Live Video 2 node2
PUBLISH TO SUBSCRIBED FRONTEND NODES
Publish to Frontend Nodes
node1
Real-time Dispatcher
Frontend
node2 Frontend
node3 Frontend
node4 Frontend
node5 Frontend
Dispatcher
87
Live Video 1 node1
Live Video 2 node5
Live Video 2 node3
Live Video 1 node2
Live Video 2 node2
Frontend Node to Client Publish
Frontend
88
Frontend Node to Client Publish
Frontend
89
What’s the next challenge?
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Live Video
1
node3
Live Video
2
node5
Live Video
2
node1
Live Video
1
node4
Live Video
2
node2
90
Challenge 5:100 Likes/second
91
100 Likes/second
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Live Video
1
node3
Live Video
2
node5
Live Video
2
node1
Live Video
1
node4
Live Video
2
node2
92
S C A L I N G B A C K E N D S Y S T E M S
When in doubt, add a machine!
93
100 Likes/second
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Live Video
1
node3
Live Video
2
node5
Live Video
2
node1
Live Video
1
node4
Live Video
2
node2
94
100 Likes/second
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Live Video
1
node7
Live Video
2
node5
Live Video
2
node1
Live Video
1
node4
Live Video
2
node2
Dispatcher
Frontend
Frontend
95
100 Likes/second
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Live Video
1
node7
Live Video
2
node5
Live Video
2
node1
Live Video
1
node4
Live Video
2
node2
Dispatcher
Frontend
Frontend
96
100 Likes/second
Frontend
Frontend
Frontend
Frontend
Frontend
Live Video
1
node7
Live Video
2
node5
Live Video
2
node1
Live Video
1
node4
Live Video
2
node2
Dispatcher
Frontend
Frontend
97
COUCHBASE/REDIS ETC.
Key-Value Store for Subscriptions
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
Key-Value Store
Dispatcher
98
Publish to Dispatcher Nodes
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
99
Subscriber lookup from KV Store
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
node1
node2
node3
node4
node5
node6
node7
100
Publish to Frontend Nodes
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
node1
node2
node3
node4
node5
node6
node7
101
Publish to Frontend Nodes
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
node1
node2
node3
node4
node5
node6
node7
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
102
Publish to Frontend Nodes
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
node1
node2
node3
node4
node5
node6
node7
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
103
Challenge 6: 100 Likes/s, 10K Viewers
Distribution of 1M Likes/s
104
Mobile
LINKEDIN LIVE
Likes
105
The Subscription Flow
Frontend Dispatcher
Key-Value Store
1
106
START WATCHING LIVE VIDEO
Viewers subscribing to Live Video Likes
cid3
cid5
Live Video 1
Live Video 2
Frontend
107
HTTP SUBSCRIPTION REQUEST
Viewers subscribing to Live Video Likes
Topic ConnectionId
cid3
cid5
Live Video 1
Live Video 2
/subscribe
Frontend
In-Memory
Subscriptions Table
108
FRONTEND IN-MEMORY SUBSCRIPTION ENTRY
Viewers subscribing to Live Video Likes
Topic ConnectionId
cid5
Live Video 2
/subscribe
/subscribe
cid3Live Video 1
Frontend
In-Memory
Subscriptions Table
109
FRONTEND IN-MEMORY SUBSCRIPTION ENTRY
Viewers subscribing to Live Video Likes
Topic ConnectionId
cid3
cid5
Live Video 1
Live Video 2
/subscribe
/subscribe
Frontend
In-Memory
Subscriptions Table
110
FRONTEND IN-MEMORY SUBSCRIPTION ENTRY
Viewers subscribing to Live Video Likes
Topic ConnectionId
cid3
cid5
Live Video 1
Live Video 2
/subscribe
/subscribe
Frontend
In-Memory
Subscriptions Table
111
The Subscription Flow
Frontend Dispatcher
Key-Value Store
1 2 3
112
FRONTEND RECEIVES SUBSCRIPTION REQUEST
Frontend Node Subscriptions in Dispatcher
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Key-Value Store
Dispatcher
Dispatcher
113
FRONTEND HTTP SUBSCRIPTION REQUEST TO DISPATCHER
Frontend Node Subscriptions in Dispatcher
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Topic
Frontend
Host
/subscribe
Key-Value Store
Dispatcher
Dispatcher
114
DISPATCHER SUBSCRIPTION ENTRY IN KV STORE
Frontend Node Subscriptions in Dispatcher
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Topic
Frontend
Host
/subscribe
/subscribe
Dispatcher
Dispatcher
Key-Value Store
115
DISPATCHER SUBSCRIPTION ENTRY IN KV STORE
Frontend Node Subscriptions in Dispatcher
node1
node2
Live Video 1
Live Video 2
Frontend
Frontend
Topic
Frontend
Host
/subscribe
/subscribe
Dispatcher
Dispatcher
Key-Value Store
116
The Publish Flow
Frontend Dispatcher
Key-Value Store
1
117
Viewers liking Live Videos
Likes Backend (Publisher)
118
Likes Published to Backend
Likes Backend (Publisher)
119
The Publish Flow
Frontend Dispatcher
Key-Value Store
1
2
345
120
The Publish Flow
Frontend Dispatcher
Key-Value Store
2
345
121
BACKEND PUBLISH TO DISPATCHER NODES
Dispatcher Publish to Frontend Nodes
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
Live Video 1 node3
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
122
SUBSCRIBER LOOKUP FROM KV STORE
Dispatcher Publish to Frontend Nodes
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
node1
node2
node3
node4
node5
node6
node7
123
SUBSCRIBER LOOKUP FROM KV STORE
Dispatcher Publish to Frontend Nodes
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
node1
node2
node3
node4
node5
node6
node7
124
PUBLISH TO FRONTEND NODES
Dispatcher Publish to Frontend Nodes
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Frontend
Frontend
Key-Value Store
Dispatcher
node1
node2
node3
node4
node5
node6
node7
Live Video 1 node7
Live Video 2 node5
Live Video 2 node1
Live Video 1 node4
Live Video 2 node2
125
The Publish Flow
Frontend Dispatcher
Key-Value Store
5
126
DISPATCHER PUBLISH TO FRONTEND NODE SUPERVISOR ACTOR
Frontend Publish to Mobile Clients
Actor 1
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
Dispatcher
Frontend In-Memory
Subscriptions
Table
127
SUBSCRIBED CLIENT CONNECTION LOOKUP FROM IN-MEMORY TABLE
Frontend Publish to Mobile Clients
Actor 1
Frontend
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
Dispatcher
In-Memory
Subscriptions
Table
128
PUBLISH TO MOBILE CLIENTS
Frontend Publish to Mobile Clients
Actor 1
Frontend
Actor 2
Actor 3
Actor 4
Actor 5
Supervisor
cid1
cid2
cid3
cid4
cid5
Live Video 1 cid3
Live Video 2 cid5
Live Video 2 cid1
Live Video 1 cid4
Live Video 2 cid2
Dispatcher
In-Memory
Subscriptions
Table
129
Bonus Challenge:
Another data center
130
131
D i s t r i b u t e d S y s t e m s
Start small and add simple layers to your
architecture
132
Frontend DispatcherDC-1
133
Frontend Dispatcher
Frontend DispatcherDC-2
DC-1
134
Frontend Dispatcher
Frontend Dispatcher
Frontend Dispatcher
DC-3
DC-2
DC-1
135
Frontend Dispatcher
Frontend Dispatcher
Frontend Dispatcher
DC-3
DC-2
DC-1
136
Frontend Dispatcher
Frontend Dispatcher
Frontend Dispatcher
DC-3
DC-2
DC-1
137
Frontend Dispatcher
Frontend Dispatcher
Frontend Dispatcher
DC-3
DC-2
DC-1
138
Frontend Dispatcher
Frontend Dispatcher
Frontend Dispatcher
DC-3
DC-2
DC-1
CrossDataCenterPublish
139
Frontend Dispatcher
Frontend Dispatcher
Frontend Dispatcher
DC-3
DC-2
DC-1
140
Frontend Dispatcher
Frontend Dispatcher
Frontend Dispatcher
DC-3
DC-2
DC-1
141
Performance & Scale
142
How many persistent connections can a single
machine hold?
Frontend
Server
?
143
> 100,000
144
ROYAL WEDDING
Second Largest Stream
>18M
viewers
© time.com
145
> 100,000
We can hold those 18M connections with just
180 machines
146
LINKEDIN ENGINEERING BLOG
tiny.cc/
linkedinscaling
>100K
147
LinkedIn Realtime Performance
Persistent Connections/machine
5K/s
Dispatcher Publish QPS/machine
75ms
E2E Publish Latency
>100K
148
Dispatcher Performance
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
How many events per second can be published to a
single dispatcher machine?
?
events/second
149
Dispatcher Performance
Number of frontend nodes to publish to is limited
per event
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
?
events/second
150
Dispatcher Performance
Frontend
Frontend
Frontend
Frontend
Frontend
Dispatcher
?
events/second
151
5K
We can publish 50K likes per second with just 10
machines
152
LinkedIn Realtime Performance
>100K
Persistent Connections/machine Dispatcher Publish QPS/machine
75ms
E2E Publish Latency
5K
153
E2E Publish Latency
Frontend Dispatcher
t1
Key-Value Store
154
E2E Publish Latency
Frontend Dispatcher
t1
Key-Value Store
t2
t2-t1 = 75ms p90
155
LinkedIn Realtime Performance
>100K
Persistent Connections/machine Dispatcher Publish QPS/machine
75ms
E2E Publish Latency
5K
156
LINKEDIN ENGINEERING BLOG
tiny.cc/
linkedinlatency
Measurement System
E2E Publish Latency
157
Why does this system scale?
Horizontally Scalable System
Frontend Dispatcher
Frontend
Frontend
Frontend
Dispatcher
Dispatcher
Dispatcher
Distributed K/V Storage System
158
Active Status/Presence
Online/Offline indicators
LINKEDIN REALTIME TECHNOLOGY
159
LINKEDIN ENGINEERING BLOG
tiny.cc/
linkedinpresence
Active Status/Presence
160
Key takeaways
161
R E A LT I M E I N T E R A C T I O N S
Enable dynamic instant experiences on your apps
162
E V E N T S O U R C E / S S E
Built-in support in most server frameworks
Readily available client libraries
HTTP/1.1 200 OK
- RESPONSE HEADERS -
Content-Type: text/event-stream
163
P l a y F r a m e w o r k a n d A k k a A c t o r s
Powerful frameworks to manage millions of
connections
State
BehaviorMailbox
164
D i s t r i b u t e d S y s t e m s
Start small and add simple layers to your
architecture
165
S C A L I N G B A C K E N D S Y S T E M S
When in doubt, add a machine!
166
R E A LT I M E I N T E R A C T I O N P L A T F O R M
Can be built on any server/storage technology
Horizontally scalable
Frontend Dispatcher
Key-
167
R E A LT I M E I N T E R A C T I O N P L A T F O R M
You can do it for your app!
168
R E A LT I M E E N G I N E E R , L I N K E D I N
@agupta03
t i n y . c c / q c o n 2 0 2 0
169
AMA at 1.40pm at Guild, Mezzanine
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
linkedin-play-akka-distributed-systems/

Weitere ähnliche Inhalte

Was ist angesagt?

Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 
Docker intro
Docker introDocker intro
Docker introOleg Z
 
MicroService architecture_&_Kubernetes
MicroService architecture_&_KubernetesMicroService architecture_&_Kubernetes
MicroService architecture_&_KubernetesAkash Agrawal
 
Introduction to the Microsoft Azure Cloud.pptx
Introduction to the Microsoft Azure Cloud.pptxIntroduction to the Microsoft Azure Cloud.pptx
Introduction to the Microsoft Azure Cloud.pptxEverestMedinilla2
 
Virtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesVirtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesabhishek chawla
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeRobert Greiner
 
Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?GDX Wu
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment ManagementSergii Shmarkatiuk
 
Head first docker
Head first dockerHead first docker
Head first dockerHan Qin
 
Cloud Computing and Security - ISACA Hyderabad Chapter Presentation
Cloud Computing and Security - ISACA Hyderabad Chapter PresentationCloud Computing and Security - ISACA Hyderabad Chapter Presentation
Cloud Computing and Security - ISACA Hyderabad Chapter PresentationVenkateswar Reddy Melachervu
 
Docker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmDocker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmCarlos E. Salazar
 
Test Driven Development Powered by LEGO
Test Driven Development Powered by LEGOTest Driven Development Powered by LEGO
Test Driven Development Powered by LEGOAgile Montréal
 

Was ist angesagt? (20)

Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computing
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
IaC.pptx
IaC.pptxIaC.pptx
IaC.pptx
 
WebGL and three.js
WebGL and three.jsWebGL and three.js
WebGL and three.js
 
Docker intro
Docker introDocker intro
Docker intro
 
Cloud Management
Cloud ManagementCloud Management
Cloud Management
 
MicroService architecture_&_Kubernetes
MicroService architecture_&_KubernetesMicroService architecture_&_Kubernetes
MicroService architecture_&_Kubernetes
 
Introduction to the Microsoft Azure Cloud.pptx
Introduction to the Microsoft Azure Cloud.pptxIntroduction to the Microsoft Azure Cloud.pptx
Introduction to the Microsoft Azure Cloud.pptx
 
Virtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesVirtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management services
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?Terraform 101: What's infrastructure as code?
Terraform 101: What's infrastructure as code?
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
 
Head first docker
Head first dockerHead first docker
Head first docker
 
Cloud computing PPT
Cloud computing PPTCloud computing PPT
Cloud computing PPT
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 
Cloud Computing and Security - ISACA Hyderabad Chapter Presentation
Cloud Computing and Security - ISACA Hyderabad Chapter PresentationCloud Computing and Security - ISACA Hyderabad Chapter Presentation
Cloud Computing and Security - ISACA Hyderabad Chapter Presentation
 
Packer by HashiCorp
Packer by HashiCorpPacker by HashiCorp
Packer by HashiCorp
 
Docker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker SwarmDocker, Docker Compose and Docker Swarm
Docker, Docker Compose and Docker Swarm
 
Test Driven Development Powered by LEGO
Test Driven Development Powered by LEGOTest Driven Development Powered by LEGO
Test Driven Development Powered by LEGO
 

Ähnlich wie Streaming a Million Likes/Second with Akka

Codemotion 2019: A million likes/second: Real-time interactions on Live Video
Codemotion 2019: A million likes/second: Real-time interactions on Live VideoCodemotion 2019: A million likes/second: Real-time interactions on Live Video
Codemotion 2019: A million likes/second: Real-time interactions on Live VideoAkhilesh Gupta
 
QCon London 2020: Streaming a million likes/second Real-time interactions on...
QCon London 2020: Streaming a million likes/second  Real-time interactions on...QCon London 2020: Streaming a million likes/second  Real-time interactions on...
QCon London 2020: Streaming a million likes/second Real-time interactions on...Akhilesh Gupta
 
How To Send Twitch Notifications Using Courier
How To Send Twitch Notifications Using CourierHow To Send Twitch Notifications Using Courier
How To Send Twitch Notifications Using CourierLetterdrop
 
Realtime Content Delivery: Powering dynamic instant experiences
Realtime Content Delivery: Powering dynamic instant experiencesRealtime Content Delivery: Powering dynamic instant experiences
Realtime Content Delivery: Powering dynamic instant experiencesAkhilesh Gupta
 
Adobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep diveAdobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep divemwmd
 
AWS Elemental Services for Video Processing and Delivery
AWS Elemental Services for Video Processing and DeliveryAWS Elemental Services for Video Processing and Delivery
AWS Elemental Services for Video Processing and DeliveryAmazon Web Services
 
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...Wasura Wattearachchi
 
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in SecondsWSO2
 
Under the hood of the particular service platform
Under the hood of the particular service platformUnder the hood of the particular service platform
Under the hood of the particular service platformParticular Software
 
OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016Stephen Fink
 
Kafka in Adobe Ad Cloud's Analytics Platform: Building systems with exactly-o...
Kafka in Adobe Ad Cloud's Analytics Platform: Building systems with exactly-o...Kafka in Adobe Ad Cloud's Analytics Platform: Building systems with exactly-o...
Kafka in Adobe Ad Cloud's Analytics Platform: Building systems with exactly-o...Vikram Patankar
 
Apache Kafka in Adobe Ad Cloud's Analytics Platform
Apache Kafka in Adobe Ad Cloud's Analytics PlatformApache Kafka in Adobe Ad Cloud's Analytics Platform
Apache Kafka in Adobe Ad Cloud's Analytics Platformconfluent
 
Design Microservice Architectures the Right Way
Design Microservice Architectures the Right WayDesign Microservice Architectures the Right Way
Design Microservice Architectures the Right WayC4Media
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupJosé Román Martín Gil
 
WebRTC Conference & Expo / Miami 2015 / D1 3 - media servers
WebRTC Conference & Expo / Miami 2015 / D1 3 - media servers WebRTC Conference & Expo / Miami 2015 / D1 3 - media servers
WebRTC Conference & Expo / Miami 2015 / D1 3 - media servers Dialogic Inc.
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleC4Media
 
No REST - Architecting Real-time Bulk Async APIs
No REST - Architecting Real-time Bulk Async APIsNo REST - Architecting Real-time Bulk Async APIs
No REST - Architecting Real-time Bulk Async APIsC4Media
 
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Luis Lopez
 
Design Microservice Architectures the Right Way
Design Microservice Architectures the Right WayDesign Microservice Architectures the Right Way
Design Microservice Architectures the Right WayMichael Bryzek
 

Ähnlich wie Streaming a Million Likes/Second with Akka (20)

Codemotion 2019: A million likes/second: Real-time interactions on Live Video
Codemotion 2019: A million likes/second: Real-time interactions on Live VideoCodemotion 2019: A million likes/second: Real-time interactions on Live Video
Codemotion 2019: A million likes/second: Real-time interactions on Live Video
 
QCon London 2020: Streaming a million likes/second Real-time interactions on...
QCon London 2020: Streaming a million likes/second  Real-time interactions on...QCon London 2020: Streaming a million likes/second  Real-time interactions on...
QCon London 2020: Streaming a million likes/second Real-time interactions on...
 
How To Send Twitch Notifications Using Courier
How To Send Twitch Notifications Using CourierHow To Send Twitch Notifications Using Courier
How To Send Twitch Notifications Using Courier
 
Realtime Content Delivery: Powering dynamic instant experiences
Realtime Content Delivery: Powering dynamic instant experiencesRealtime Content Delivery: Powering dynamic instant experiences
Realtime Content Delivery: Powering dynamic instant experiences
 
Adobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep diveAdobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep dive
 
Cloud Computing in the Enterprise
Cloud Computing in the EnterpriseCloud Computing in the Enterprise
Cloud Computing in the Enterprise
 
AWS Elemental Services for Video Processing and Delivery
AWS Elemental Services for Video Processing and DeliveryAWS Elemental Services for Video Processing and Delivery
AWS Elemental Services for Video Processing and Delivery
 
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
 
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
[apidays LIVE HONK KONG] - OAS to Managed API in Seconds
 
Under the hood of the particular service platform
Under the hood of the particular service platformUnder the hood of the particular service platform
Under the hood of the particular service platform
 
OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016OpenWhisk Under the Hood -- London Oct 16 2016
OpenWhisk Under the Hood -- London Oct 16 2016
 
Kafka in Adobe Ad Cloud's Analytics Platform: Building systems with exactly-o...
Kafka in Adobe Ad Cloud's Analytics Platform: Building systems with exactly-o...Kafka in Adobe Ad Cloud's Analytics Platform: Building systems with exactly-o...
Kafka in Adobe Ad Cloud's Analytics Platform: Building systems with exactly-o...
 
Apache Kafka in Adobe Ad Cloud's Analytics Platform
Apache Kafka in Adobe Ad Cloud's Analytics PlatformApache Kafka in Adobe Ad Cloud's Analytics Platform
Apache Kafka in Adobe Ad Cloud's Analytics Platform
 
Design Microservice Architectures the Right Way
Design Microservice Architectures the Right WayDesign Microservice Architectures the Right Way
Design Microservice Architectures the Right Way
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - Meetup
 
WebRTC Conference & Expo / Miami 2015 / D1 3 - media servers
WebRTC Conference & Expo / Miami 2015 / D1 3 - media servers WebRTC Conference & Expo / Miami 2015 / D1 3 - media servers
WebRTC Conference & Expo / Miami 2015 / D1 3 - media servers
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
No REST - Architecting Real-time Bulk Async APIs
No REST - Architecting Real-time Bulk Async APIsNo REST - Architecting Real-time Bulk Async APIs
No REST - Architecting Real-time Bulk Async APIs
 
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
 
Design Microservice Architectures the Right Way
Design Microservice Architectures the Right WayDesign Microservice Architectures the Right Way
Design Microservice Architectures the Right Way
 

Mehr von C4Media

Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileC4Media
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020C4Media
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No KeeperC4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like OwnersC4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsC4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereC4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsC4Media
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechC4Media
 

Mehr von C4Media (20)

Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery Teams
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in Adtech
 

Kürzlich hochgeladen

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 

Kürzlich hochgeladen (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 

Streaming a Million Likes/Second with Akka