SlideShare a Scribd company logo
1 of 60
Download to read offline
Johan Andrén | Func Prog Sweden 2021
A Whirlwind tour


Akka
Type safe, message driven, distributed
Johan Andrén
Akka Team


Stockholm Scala User Group
@apnylle


johan.andren@lightbend.com
A man, a plan …
Akka basics, distsys background and Akka Cluster basics


We’ll get an overview of what Akka is and how it does distribution


Cluster Sharding


Shard actors across cluster


Distributed Data


Eventual consistency


Distributed PubSub


A message bus across the cluster


Cluster Singleton


How to introduce a single point of failure


Akka Persistence


Eventsourcing and Replicated event sourced state storage with actors




}Cluster Tools
Cluster Singleton


How to introduce a single point of failure


Akka Persistence


Eventsourcing and Replicated event sourced state storage with actors


Akka Streams


Async, backpressured streams


Alpakka


Enterprise integration on top of streams


Akka HTTP


Async streaming HTTP server and client


Akka gRPC


Async streaming gRPC server and client


Akka Platform


Productionalize distributed apps on AWS/GCP
}
Actor
Message
Inbox
Message
Message
Actor Basics
ActorRef.tell(message, sender)
• mutate state (including spawning a child actor)


• send messages to other actors


• change its behavior
Actor
Message
Inbox
Message
Message
In response to receiving a message
object HelloWorldActor {


/
/
protocol


case class Hello(who: String)


/
/
actor impl


def apply()
:
Behavior[Hello] =


Behaviors.receiveMessage {


case Hello(who)
=
>


println(s"Hello $who")


Behaviors.same


}


}


object Main {


def main(args: Array[String])
:
Unit = {


val system = ActorSystem(HelloWorldActor(), "HelloSystem")


system ! HelloWorldActor.Hello("Johan")


system ! HelloWorldActor.Hello("Func Prog Sweden")


}


}


Sample
1
Sample
2
object HellWorldWithState {


/
/
protocol


case class Hello(who: String)


/
/
actor impl


def apply()
:
Behavior[Hello] = withCounter(0)


private def withCounter(count: Int)
:
Behavior[Hello] =


Behaviors.receiveMessage {


case Hello(who)
=
>


println(s"Hello $who ($count)")


withCounter(count + 1)
/
/
return new behavior


}


}
Actor interaction patterns
•Fire and forget


•Request-response


•Subscription
Message
Actor
Message
Actor
Actor
Message
Subscribe
Actor
Actor
Message
Message
Sample
3
object HellWorldWithReply {


/
/
protocol


case class Hello(who: String, replyTo: ActorRef[String])


/
/
actor impl


def apply()
:
Behavior[Hello] = withCounter(0)


private def withCounter(count: Int)
:
Behavior[Hello] =


Behaviors.receiveMessage {


case Hello(who, replyTo)
=
>


replyTo ! s"Hello $who ($count)"


withCounter(count + 1)
/
/
return new behavior


}


}
Sample
3
contd.
object HelloWorldRequestee {


def apply(helloActor: ActorRef[HellWorldWithReply.Hello])
:
Behavior[String] =


Behaviors.setup { context
=
>


/
/
on actor startup


helloActor ! HellWorldWithReply.Hello("the other actor", context.self)


Behaviors.receiveMessage {


case text
=
>


println(s"Got text: $text")


Behaviors.stopped


}


}


}
Distributed Systems
–Leslie Lamport
”A distributed system is one in which the failure of a
computer you didn't even know existed can render
your own computer unusable”
Local
ActorSystem
Message
Message
Actor
Actor
Actor
JVM 2
JVM 1
Distributed
ActorSystem
ActorSystem
Message
Message
Actor
Actor
Actor
Actor Model is a great fit
Interaction already modelled as immutable messages


Data travels over the network in packages, any updates to the data
has to be explicitly sent back.


At most once


Data reaches a node on the other side at most once, but can be
lost, already part of model!


A recipient of a message can reply directly to sender


Regardless if there were intermediate recipients of the message


A => B => C - C can reply directly to A


Messages not limited to request response


Messages can flow in either direction when two systems are
connected.
Akka Cluster
https://doc.akka.io/docs/akka/current/typed/cluster.html
Forming a cluster
Join
https://doc.akka.io/docs/akka-management/current/bootstrap/index.html
Akka Management/Cluster Bootstrap
Programmatic/


through config
Gossip & Heartbeats
(leader)
Failure detector
(leader)
A
A is unreachable!
🤢
Failure detector
(leader)
A
A is reachable again!
🤕
Failure detector
(leader)
A
A is unreachable!
😵
SBR (split brain resolver)


Can down and remove crashed nodes
https://doc.akka.io/docs/akka/current/split-brain-resolver.html
Partitions/potential split brain
(leader)
A
A, E & D is unreachable!
B
C
D
E
B & C is unreachable!
✂
✂
✂
User API of Cluster
Node details


What roles am I in, what is my address


Join, Leave, Down


Programatic control over cluster membership


Register listeners for cluster events


Every time the cluster state changes the listening
actor will get a message
Typed Receptionist
Service key


A name and message type identifying some service/protocol


Actors providing the service


Register to a “receptionist” - there is one per actor system


Consumers of the service


Lookup using the key, or subscribe


Local as well


Also works in a non clustered actor system


Extra


Built in components interact with the receptionist - routers, pub sub
topics
https://doc.akka.io/docs/akka/current/typed/actor-discovery.html
Receptionist
Typed Receptionist
Receptionist
Receptionist
Receptionist
Typed Receptionist
Receptionist
Receptionist
HelloActor
Register(key, actorRef)
Receptionist
Typed Receptionist
Receptionist
Receptionist
HelloActor
Gossip
Gossip
Receptionist
Typed Receptionist
Receptionist
Receptionist
HelloWorldRequestee
Subscribe(keyA, actorRef)
HelloActor
Receptionist
Typed Receptionist
Receptionist
Receptionist
HelloActor
HelloWorldRequestee
Listing(key, actorRefs)
Receptionist
Typed Receptionist
Receptionist
Receptionist
HelloActor
HelloWorldRequestee
Message
Receptionist
Typed Receptionist + Router
Receptionist
Receptionist
HelloActor
HelloWorldRequestee
Message
Router(keyA)
Akka Cluster Tools
Consistency vs Availability
Strong Consistency Always Available
Node 1 Node 2
✂
Cluster Sharding
Actor


with id 1
Shard actors based on an identifier
Message(recipientId = 1)
https://doc.akka.io/docs/akka/current/typed/cluster-sharding.html
Entity C-1
Entity B-4
Shard C
Cluster Sharding
ShardCoordinator (singleton)
ShardRegion
ShardRegion
ShardRegion
Shard A
Shard B
Entity A-1
Entity A-7
Entity C-1
Shard C
Cluster Sharding
ShardCoordinator (singleton)
ShardRegion
ShardRegion
ShardRegion
Envelope(“c-1”)
Entity C-1
Shard C
Cluster Sharding
ShardCoordinator (singleton)
ShardRegion
ShardRegion
Envelope(“c-1”)
Downed
Strong Consistency Always Available
guarantees single instance of same entity
Cluster Sharding
Distributed Data
CRDTs: Conflict free Replicated Data Types
allow for updates on any node and then
spreading that update to other cluster nodes
through gossip for eventual consistency
Note: Does not
fi
t every problem!
https://doc.akka.io/docs/akka/current/typed/distributed-data.html
Special requirements
Commutative


Order of operation does not matter


like 3 + 4 = 4 + 3


Associative


Grouping operations does not matter


like 3 + (4 + 5) = (3 + 4) + 5


Monotonic


Absence of rollbacks, ”only growing” (but we can do sneaky
tricks)
Built in data structures
Counters


GCounter - grow only, PNCounter - increment and decrement counter


Sets


GSet - grow only, ORSet - observed remove set


Maps


ORMap - observed remove map, ORMultiMap - observed remove multi
map, PNCounterMap - positive negative counter map, LWWMap - last
writer wins map


Flags and Register


Flag - toggle once boolean, LWWRegister - last writer wins register
Replicator
Replicator
Replicator
In Action
Replicator
Replicator
Replicator
Replicator
Replicator
In Action
Update(key, …)
Replicator
Replicator
Get(key)
Subscribe(key, actor)
Update(key, …)
Strong Consistency Always Available
Eventually consistent - always accepts writes
Distributed Data
Topic(keyA)
Distributed Pub Sub
Publish(msgA)
Subscriber
Subscriber
https://doc.akka.io/docs/akka/current/typed/distributed-pub-sub.html
Topic(keyA)
msgA
Topic(keyA)
msgA
With topics
Subscribe(ref)
Topic(keyA)
Subscriber
Topic(keyA)
Topic(keyA)
Subscriber
Subscribe(ref)
Strong Consistency Always Available
Subscribers/Topics eventually consistent


always accepts writes
Distributed PubSub
Cluster Singleton
Singleton
Or: how to introduce a single point of failure
https://doc.akka.io/docs/akka/current/typed/cluster-singleton.html
🤦
Cluster Singleton
SingletonManager
SingletonManager
SingletonManager
(oldest)
SingletonActor
Cluster Singleton
SingletonManager
SingletonManager
SingletonManager
(oldest)
SingletonActor
SingletonProxy
Message
Cluster Singleton
SingletonManager
SingletonManager
(oldest)
SingletonActor
Downed
Strong Consistency Always Available
Only one cluster singleton will ever live
Cluster Singleton
Sharded Daemon Process
Process-1
Scaled out singletons, sort of
https://doc.akka.io/docs/akka/current/typed/cluster-sharded-daemon-process.html
Process-2
Process-3
Sharded Daemon Process
Pre-sized


Run N-actors of this type across the cluster


No API for interacting


Meant for some process that can be split up into parts


(But process actors can use receptionist/pub sub etc)


Built on top of Cluster Sharding


Each process is a sharded actor
Sharded Daemon Process
Strong Consistency Always Available
Max those N instances ever,


But can stop and be unavailable when moving
Multi-DC
[dc-1]
[dc-2]
[dc-3]
https://doc.akka.io//docs/akka/current/typed/cluster-dc.html
(leader)
(leader)
(leader)
Multi-DC support in cluster tools
Sharding


Per DC, proxy defaults to local dc, can be started with a data-
center setting


Distributed Data and PubSub


No special support (optimisation possibilities)


Cluster Singleton


Is a singleton per DC


Replicated Event Sourcing


Commercial feature OSS:d allowing for active-active or active-
passive eventually consistent persistence between
datacenters (docs)
akka.io
Additional resources
discuss.akka.io - forums


developer.lightbend.com/docs/akka-platform-guide - write
distributed micro service - put it into production on AWS/GCP


github.com/akka/akka-samples - a bunch of sample projects


Watch this space: Akka Serverless
Thanks for listening!
@apnylle


johan.andren@lightbend.com

More Related Content

Recently uploaded

THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxruthvilladarez
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Millenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxMillenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxJanEmmanBrigoli
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 

Recently uploaded (20)

THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
Millenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxMillenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptx
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 

Featured

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
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

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...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Type safe, message driven, distributed - a whirlwind tour of Akka by Johan Andrén at Func Prog Sweden