SlideShare a Scribd company logo
1 of 107
Download to read offline
Real -World Akka Actor Recipes
Björn Antonsson
@bantonsson
co-authored with
Jamie Allen and Patrik Nordwall
Tuesday, 1 October 13
@bantonsson@bantonsson
Overview
• What is Akka?
• What are actors?
• Getting into the flow
• Getting your message across
• Tying it all together
2
Tuesday, 1 October 13
What is Akka?
Tuesday, 1 October 13
@bantonsson@bantonsson
What is Akka?
• Toolkit and runtime for reactive applications
• Write applications that are
– Concurrent
– Distributed
– Fault tolerant
– Event-driven
4
Tuesday, 1 October 13
@bantonsson@bantonsson
What is Akka?
• Has multiple tools
– Actors
– Futures
– Dataflow
– Remoting
– Clustering
5
Tuesday, 1 October 13
What are actors?
Tuesday, 1 October 13
@bantonsson@bantonsson
What are actors?
• Isolated lightweight event-based processes
• Share nothing
• Communicate through async messages
• Each actor has a mailbox (message queue)
• Location transparent (distributable)
• Supervision-based failure management
7
Tuesday, 1 October 13
@bantonsson@bantonsson
What is an actor good for?
• An island of sanity in a sea of concurrency
• Everything inside the actor is sequential
– Processes one message at a time
• Very lightweight
– Create millions
– Create short lived
• Inherently concurrent
8
Tuesday, 1 October 13
@bantonsson@bantonsson
Actors compared to Objects
• Think of an Actor as an Object
• You can't peek inside it
• You don't call methods
– You send messages (asynchronously)
• You don't get return values
– You receive messages (asynchronously)
• The internal state is thread safe
9
Tuesday, 1 October 13
Why should I care?
Tuesday, 1 October 13
The world is multicore!
Tuesday, 1 October 13
@bantonsson@bantonsson
12
Amdahl’s Law
Tuesday, 1 October 13
@bantonsson@bantonsson
So what's the catch?
• Really no catch
• A different programming paradigm
• All about tradeoffs
– Some things are easier some harder
• Think different
13
Tuesday, 1 October 13
Getting into the flow
Tuesday, 1 October 13
@bantonsson@bantonsson
Getting into the flow
• Why do you need flow control?
• How do you control the flow?
• Do you really need all messages?
15
Tuesday, 1 October 13
@bantonsson@bantonsson
Why do you need flow control?
• Function calls are blocking
• Message sends are asynchronous
• Possible problems
– Produce jobs too fast
– Many jobs need much CPU and/or Memory
– External resources have limits
– Unpredictable job patterns
16
Tuesday, 1 October 13
@bantonsson@bantonsson
Why do you need flow control?
• Free flow of messages can lead to
– Blocked from external resource
– Actor mailbox backup
– Slow system
– Out of Memory
17
Tuesday, 1 October 13
@bantonsson@bantonsson
How do you control the flow?
• Push with rate limiting
– A fixed number of jobs per time unit
• Push with acknowledgment
– A fixed number of jobs can be in progress
– New jobs are started a"er old jobs finish
• Pull
– New jobs are pulled as old are completed
18
Tuesday, 1 October 13
@bantonsson@bantonsson
Push with rate limiting
• A timer sends ticks at fixed intervals
• On every tick the master gets new tokens
• When there are no tokens, jobs get queued
• When there are tokens, start queued jobs
19
Tuesday, 1 October 13
@bantonsson@bantonsson
20
Worker
Master [0]
Queue [0]
Timer
Worker
1. Work
Tuesday, 1 October 13
@bantonsson@bantonsson
21
Worker
Master [0]
Queue [1]
Timer
Worker
1. Work 2. Enqueue
Tuesday, 1 October 13
@bantonsson@bantonsson
22
Worker
Master [5]
Queue [1]
Timer
Worker
1. Work 2. Enqueue
3. Tick
Tuesday, 1 October 13
@bantonsson@bantonsson
23
Worker
Master [4]
Queue [0]
Timer
Worker
1. Work 2. Enqueue
4. Dequeue
3. Tick
Tuesday, 1 October 13
@bantonsson@bantonsson
24
Worker
Master [4]
Queue [0]
Timer
Worker
1. Work 2. Enqueue
4. Dequeue
3. Tick 5. Work
Tuesday, 1 October 13
@bantonsson@bantonsson
Push with acknowledgement
• A fixed number of jobs are started
• Wait for ACK before starting more jobs
• Jobs that can't be started are queued
• When ACK arrives start queued job
• To keep workers busy, send more than one
job per worker
– Use a high water mark to stop sending and a low
water mark to start sending
25
Tuesday, 1 October 13
@bantonsson@bantonsson
26
Worker
Master [0]
Queue [0]
Worker
1. Work
Tuesday, 1 October 13
@bantonsson@bantonsson
27
Worker
Master [0]
Queue [1]
Worker
1. Work 2. Enqueue
Tuesday, 1 October 13
@bantonsson@bantonsson
28
Worker
Master [1]
Queue [1]
Worker
1. Work 2. Enqueue
3. Ack
Tuesday, 1 October 13
@bantonsson@bantonsson
29
Worker
Master [0]
Queue [0]
Worker
1. Work 2. Enqueue
4. Dequeue
3. Ack
Tuesday, 1 October 13
@bantonsson@bantonsson
30
Worker
Master [0]
Queue [0]
Worker
1. Work 2. Enqueue
4. Dequeue
5. Work
3. Ack
Tuesday, 1 October 13
@bantonsson@bantonsson
31
Worker
Master [1]
Queue [0]
Worker
1. Work 2. Enqueue
4. Dequeue
5. Work
6. Ack
3. Ack
Tuesday, 1 October 13
@bantonsson@bantonsson
Pull
• Incoming jobs are queued
• Workers ask for jobs
• Jobs are handed out when available
• Workers don't do active polling
• Can lead to lag if jobs are small compared to
cost of getting a new job
– Use batching to counteract lag
32
Tuesday, 1 October 13
@bantonsson@bantonsson
33
Worker
Master
Queue [0]
Worker
1. Work
Tuesday, 1 October 13
@bantonsson@bantonsson
34
Worker
Master
Queue [1]
Worker
1. Work 2. Enqueue
Tuesday, 1 October 13
@bantonsson@bantonsson
35
Worker
Master
Queue [1]
Worker
1. Work 2. Enqueue
3. Work?
Tuesday, 1 October 13
@bantonsson@bantonsson
36
Worker
Master
Queue [0]
Worker
1. Work 2. Enqueue
4. Dequeue
3. Work?
Tuesday, 1 October 13
@bantonsson@bantonsson
37
Worker
Master
Queue [0]
Worker
1. Work 2. Enqueue
4. Dequeue
5. Work
3. Work?
Tuesday, 1 October 13
@bantonsson@bantonsson
Do you really need all messages?
• Group messages together
– Batching
• Discard/Aggregate messages
– Scrubbing
38
Tuesday, 1 October 13
@bantonsson@bantonsson
Batching
• Collect a number of messages before
sending/processing them
– A predefined number of messages or time
• Useful for things like
– Write behind
– Database bulk insert/update
– Heavyweight operations e.g. GUI rendering
39
Tuesday, 1 October 13
@bantonsson@bantonsson
Scrubbing
• Discard or aggregate some messages
– Predefined number of messages or time
• Useful for things like
– Financial market data
– Statistics
40
Tuesday, 1 October 13
Getting your message across
Tuesday, 1 October 13
@bantonsson@bantonsson
Getting your message across
• When is a message delivered?
• The fallacy of guaranteed delivery
• What Akka guarantees
• Reliable messaging
42
Tuesday, 1 October 13
@bantonsson@bantonsson
When is a message delivered?
• Function calls block until done
• Message sends return immediately
• Which is the right point?
– Sent/Received Network?
– Enqueued/Dequeued Mailbox?
– Processed by Actor?
• Do ACKing at the business level
43
Tuesday, 1 October 13
@bantonsson@bantonsson
Guaranteed delivery
• From Enterprise Integration Patterns
• Messaging system uses built-in store to
persist
• ACK everywhere
– Producer to sender
– Sender to receiver
– Receiver to consumer
44
Tuesday, 1 October 13
@bantonsson@bantonsson
Lots of ACKs. What if I just...
• Use Durable Mailboxes?
– When is the message in the mailbox?
– No guarantees that it ever got there
– Still have to ACK to be certain
45
Tuesday, 1 October 13
@bantonsson@bantonsson
Lots of ACKs. What if I just...
• Use an External Durable Message Queue
– A SPOF/Bottleneck?
– When is the message in the message queue?
– The queue does ACKing internally
– No guarantees that it ever gets out
– Still have to ACK to be certain
46
Tuesday, 1 October 13
@bantonsson@bantonsson
Guaranteed delivery doesn't exist
• Things break
– Persistent store crashes
– Network fails
– Server goes down
• Design for failure and resilience
• Do ACKing at the business level
47
Tuesday, 1 October 13
@bantonsson@bantonsson
What Akka guarantees
• At most once delivery
– Message is only delivered once, if at all
– The weakest guarantee
• Ordered per actor sender-receiver pair
– Actor A sends messages to actor B
– If the messages are received by actor B,
it will be in the order as sent by actor A
48
Tuesday, 1 October 13
@bantonsson@bantonsson
Other delivery guarantees
• At least once
– Message will eventually be delivered
– Can happen multiple times
• Exactly once
– Message will eventually be delivered
– Will only happen once
• Have to add these yourself
– They involve ACKing ;)
49
Tuesday, 1 October 13
@bantonsson@bantonsson
Reliable Messaging: At least once
• Send with acknowledge
– Keep sending until you get an ACK
• Receive with re-request
– When missing a message request it
– Needs unique sequence numbers
• Requires
– Message store at sender (available/redundant)
50
Tuesday, 1 October 13
@bantonsson@bantonsson
51
Sender
Receiver
Store
Tuesday, 1 October 13
@bantonsson@bantonsson
52
Sender
Receiver
Store
1. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
53
Sender
Receiver
Store
2. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
54
Sender
Receiver3. Ack
Store
2. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
55
Sender
Receiver3. Ack
Store
4. Ack
2. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
Reliable Messaging: At least once
• Use a pipe of actors before ACKing
• Keep pipe free of side effects
– Same message might come several times
• ACK should be done at the business level
56
Tuesday, 1 October 13
@bantonsson@bantonsson
57
Sender
Check
Inventory
Authenticate
ReceiverStore
Tuesday, 1 October 13
@bantonsson@bantonsson
58
Sender
Check
Inventory
Authenticate
ReceiverStore
1. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
59
Sender
Check
Inventory
Authenticate
Receiver
2. Message
Store
Tuesday, 1 October 13
@bantonsson@bantonsson
60
Sender
Check
Inventory
Authenticate
Receiver
2. Message
3. Message'
Store
Tuesday, 1 October 13
@bantonsson@bantonsson
61
Sender
Check
Inventory
Authenticate
Receiver
4. Message''
2. Message
3. Message'
Store
Tuesday, 1 October 13
@bantonsson@bantonsson
62
Sender
Check
Inventory
Authenticate
Receiver
4. Message''
2. Message
3. Message'
5. Ack
Store
Tuesday, 1 October 13
@bantonsson@bantonsson
63
Sender
Check
Inventory
Authenticate
Receiver
4. Message''
2. Message
3. Message'
5. Ack
Store
6. Ack
Tuesday, 1 October 13
@bantonsson@bantonsson
Receive with re-request
• When missing a message request it
• Requires
– Uniquely identifiable sequence
– Message store at sender (available/redundant)
64
Tuesday, 1 October 13
@bantonsson@bantonsson
65
Sender
Receiver
Store
Tuesday, 1 October 13
@bantonsson@bantonsson
66
Sender
Receiver
Store
1. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
67
Sender
Receiver
Store
2. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
68
Sender
Receiver
Store
3. Message'
Tuesday, 1 October 13
@bantonsson@bantonsson
69
Sender
Receiver
Store
4. Message'
Tuesday, 1 October 13
@bantonsson@bantonsson
70
Sender
Receiver5. Request
Store
4. Message'
Tuesday, 1 October 13
@bantonsson@bantonsson
71
Sender
Receiver
Store
6. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
72
Sender
Receiver
Store
6. Message
7. Message
Tuesday, 1 October 13
@bantonsson@bantonsson
73
Sender
Receiver
Store
8. Message'
Tuesday, 1 October 13
@bantonsson@bantonsson
74
Sender
Receiver
Store
8. Message'
9. Message'
Tuesday, 1 October 13
Tying it all together
Tuesday, 1 October 13
@bantonsson@bantonsson
Tying it all together
• Distributed Workers Example
– Front Ends receive requests
– Master receives work from Front Ends
– Workers pull work from Master
• Available as a Typesafe Activator template
– Zero configuration setup
– Code and tutorial
76
Tuesday, 1 October 13
@bantonsson@bantonsson
77
Worker
Master
Worker
Worker
Worker
Frontend
Frontend
Tuesday, 1 October 13
@bantonsson@bantonsson
Tying it all together
• Further Goals
– Elastic addition/removal of front end nodes
– Elastic addition/removal of workers
– Thousands of workers
– Jobs should not be lost
78
Tuesday, 1 October 13
@bantonsson@bantonsson
79
Master
Worker
Frontend
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
80
Master
Worker
Frontend
Work
Executor
RegisterWorker
Tuesday, 1 October 13
@bantonsson@bantonsson
81
Master
Worker
Frontend
1. Work
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
82
Master
Worker
Frontend
1. Work
2. Work
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
83
Master
Worker
Frontend
1. Work
2. Work
3. Ack
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
84
Master
Worker
Frontend
1. Work
2. Work
3. Ack
4. OK
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
85
Master
Worker
Frontend
1. Work
2. Work
3. Ack
4. OK
5. WorkIsReady
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
86
Master
Worker
Frontend
1. Work
2. Work
3. Ack
4. OK
5. WorkIsReady
6. WorkerRequestWork
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
87
Master
Worker
Frontend
1. Work
2. Work
3. Ack
4. OK
5. WorkIsReady
6. WorkerRequestWork
7. Work
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
88
Master
Worker
Frontend
1. Work
2. Work
3. Ack
4. OK
5. WorkIsReady
6. WorkerRequestWork
7. Work
Work
Executor
8. Work
Tuesday, 1 October 13
@bantonsson@bantonsson
89
Master
Worker
Frontend
Work
Executor
Tuesday, 1 October 13
@bantonsson@bantonsson
90
Master
Worker
Frontend
Work
Executor
9. WorkComplete
Tuesday, 1 October 13
@bantonsson@bantonsson
91
Master
Worker
Frontend
Work
Executor
9. WorkComplete
10. WorkIsDone
Tuesday, 1 October 13
@bantonsson@bantonsson
92
Master
Worker
Frontend
Work
Executor
9. WorkComplete
10. WorkIsDone
11. Ack
Tuesday, 1 October 13
@bantonsson@bantonsson
Cluster Technologies/Patterns
• Distributed Pub/Sub Mediator
– Publish and Subscribe to message flows
• Cluster Singleton
– HA singleton actor instance within the cluster
• Cluster Client
– Let other systems connect to the cluster
93
Tuesday, 1 October 13
@bantonsson@bantonsson
DistributedPubSubMediator
94
Frontend Master
Mediator Mediator
Tuesday, 1 October 13
@bantonsson@bantonsson
DistributedPubSubMediator
95
Frontend Master
Mediator Mediator
Put
Tuesday, 1 October 13
@bantonsson@bantonsson
DistributedPubSubMediator
96
Frontend Master
Mediator Mediator
Send
Tuesday, 1 October 13
@bantonsson@bantonsson
DistributedPubSubMediator
97
Frontend Master
Mediator Mediator
Send
Tuesday, 1 October 13
@bantonsson@bantonsson
ClusterSingleton
98
ClusterSingleton
Manager
ClusterSingleton
Manager
Master
Master
(Standby)
Tuesday, 1 October 13
@bantonsson@bantonsson
ClusterSingleton
99
ClusterSingleton
Manager
ClusterSingleton
Manager
Master
Master
(Standby)
Tuesday, 1 October 13
@bantonsson@bantonsson
ClusterSingleton
100
ClusterSingleton
Manager
ClusterSingleton
Manager
Master Master
Tuesday, 1 October 13
@bantonsson@bantonsson
ClusterClient & ClusterSingleton
101
Master
Mediator
Mediator
Receptionist
Master
(Standby)
Receptionist
Cluster
Client
Cluster
Client
Worker
Worker
Tuesday, 1 October 13
@bantonsson@bantonsson
102
Master
Mediator
Mediator
Receptionist
Master
(Standby)
Receptionist
Cluster
Client
Cluster
Client
Worker
Worker
Cluster
Client
Worker
Worker
Frontend
Frontend
Tuesday, 1 October 13
Resources
Tuesday, 1 October 13
@bantonsson@bantonsson
Resources: Blog Posts
• Push with rate limiting
– Kaspar Fischer
http://letitcrash.com/post/28901663062/throttling-messages-in-akka-2
• Pull
– Derek Wyatt
http://letitcrash.com/post/29044669086/balancing-workload-across-nodes-with-
akka-2
– Michael Pollmeier
http://www.michaelpollmeier.com/akka-work-pulling-pattern-to-throttle-work/
104
Tuesday, 1 October 13
@bantonsson@bantonsson
Resources: Typesafe Activator
• http://typesafe.com/platform/getstarted
105
Tuesday, 1 October 13
@bantonsson@bantonsson
Resources: Coursera Course
• Principles of Reactive Programming by
Martin Odersky, Erik Meijer and Roland Kuhn
– Starts 4th of November 2013
– 7 weeks
– Workload: 5-7 hours a week
– Free as in free beer
• https://www.coursera.org/course/reactive
106
Tuesday, 1 October 13
Björn Antonsson
bjorn.antonsson@typesafe.com
@bantonsson
Tuesday, 1 October 13

More Related Content

Recently uploaded

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Recently uploaded (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Real World Akka Actor Recipes JavaOne 2013