SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Actor Model and Reactive Manifesto
Angelo Simone Scotto
Cluster Reply
The Reactive Manifesto
You can never solve a problem on the level on which it was created.
3
New tools for a new era
4
users
load
failure
events
Reactive Applications
Reactive Manifesto
5
“In karate, there is an image that's used to define the position of
perfect readiness: "mind like water" Imagine throwing a pebble
into a still pond. How does the water respond? The answer is,
totally appropriately to the force and mass of the input; then it
returns to calm. It doesn't overreact or underreact”
Not just for software
6
Hardware is going reactive too.
TrueNorth neurosynaptic chip, IBM Research
7
Reactive Traits
Event Driven
Scalable Resilient
Responsive
8
Reactive: It’s all about concurrency
Event Driven
Scalable Resilient
Responsive
9
• Usually, code we write is thought to be executed sequentially.
• We tend to use shared state and synchronization mechanism
such as locks to face concurrent executions.
• Sharing and Locking exposes us to new set of problems:
Deadlock, Livelock, Starvation, False Sharing, …
• «…our intellectual powers are rather geared to master static
relations and that our powers to visualize processes evolving
in time are relatively poorly developed..» E. Dijkstra, 1968
• «There are severe limits in how much can be kept in mind at
once (about 3–5 items)” N. Cowan, 2010
• «It’s the damn humans. The critters simply can’t think in
parallel» G. Bracha, 2014
Concurrency IS hard
Introducing the Actor Model
Nothing is more powerful than an idea whose time has come.
14
Introducing the Actor Model
“A
Universal Modular Actor Formalism
for Artificial Intelligence”
concurrent
human organizations
laws of physics
Carl Hewitt
15
An Actor:
• Is an object with an identity.
• Has a behavior.
• Only interacts using
asynchronous message
passing.
What is an Actor
17
An Actor:
• Is an object with an identity.
• Has a behavior.
• Only interacts using
asynchronous message
passing.
What is an Actor
What
time is it?
12:37
18
An Actor can:
• send a finite number of
messages to other actors;
• create a finite number of new
actors;
• designate the behavior to be
used for the next message it
receives.
What can an actor do ?
What
time is it?
12:37
19
Actor libraries and frameworks
• Actor framework exists for all major
programming languages.
• Most notables are:
Erlang (since 1986)
Akka for Scala & Java (since 2009)
20
Show me some code !
// A simple actor
class Echo extends Actor {
def receive = {
case value: String =>
println(value)
case _ => println("ERROR:
received unknown message")
}
}
22
class AtomicInteger extends Actor {
var innerValue = 0;
def receive = {
case Initialize(value) => innerValue = value;
case Increment(value) => innerValue += value;
sender ! innerValue;
case Decrement(value) => innerValue -= value;
sender ! innerValue;
}
}
Single actors are synchronous
23
Hewitt example of actor system
US Department of State Organization chart
24
As they most probably are…
25
Just for reactive software?
OOP messaging, local
retention protection hiding of
state-process
Actor model retained
the good features of the
object idea
Alan Kay
30
Good enough for them? Good enough for you!
Erlang Use Cases
31
Good enough for them? Good enough for you!
Akka Use Cases
Reactive Manifesto: http://www.reactivemanifesto.org/
Principle of Reactive Programming: https://www.coursera.org/course/reactive
Akka website: http://akka.io/
Erlang: http://www.erlang.org/
Actor Model Implementations: http://en.wikipedia.org/wiki/Actor_model#Actor_libraries_and_frameworks
Hewitt, Meijer and Szyperski: The Actor Model: https://www.youtube.com/watch?v=7erJ1DV_Tlo
Reactive Design Patterns: http://www.manning.com/kuhn/
Reactive Enterprise with Actor Model: http://www.amazon.com/Reactive-Enterprise-Actor-Model-Application/dp/0133846830
How Twitter is scaling: https://waimingmok.wordpress.com/2009/06/27/how-twitter-is-scaling/
Microsoft Orleans & Halo 4: http://caitiem.com/2014/04/03/orleans-preview-halo-4/
Linkedin Use Case: http://downloads.typesafe.com/website/casestudies/LinkedIn-Case-Study-v1.3.pdf
Facebook Use Case: https://www.facebook.com/note.php?note_id=14218138919
Yahoo! Use Case: http://www.drdobbs.com/parallel/using-erlang-to-build-reliable-fault-tol/220600332
Amazon SimpleDB: https://gigaom.com/2007/12/14/amazon-web-services-launches-simpledb-beta/
Thanks
Angelo Simone Scotto
a.scotto@reply.eu

Weitere ähnliche Inhalte

Was ist angesagt?

Etsy Activity Feeds Architecture
Etsy Activity Feeds ArchitectureEtsy Activity Feeds Architecture
Etsy Activity Feeds Architecture
Dan McKinley
 

Was ist angesagt? (20)

Variables in Pharo
Variables in PharoVariables in Pharo
Variables in Pharo
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
MyRocks Deep Dive
MyRocks Deep DiveMyRocks Deep Dive
MyRocks Deep Dive
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
Firestore: The Basics
Firestore: The BasicsFirestore: The Basics
Firestore: The Basics
 
Getting Started with Confluent Schema Registry
Getting Started with Confluent Schema RegistryGetting Started with Confluent Schema Registry
Getting Started with Confluent Schema Registry
 
Etsy Activity Feeds Architecture
Etsy Activity Feeds ArchitectureEtsy Activity Feeds Architecture
Etsy Activity Feeds Architecture
 
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookTech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per dayHow Uber scaled its Real Time Infrastructure to Trillion events per day
How Uber scaled its Real Time Infrastructure to Trillion events per day
 
Architecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash WorkshopArchitecting for the Cloud using NetflixOSS - Codemash Workshop
Architecting for the Cloud using NetflixOSS - Codemash Workshop
 
Distributed tracing 101
Distributed tracing 101Distributed tracing 101
Distributed tracing 101
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Amazon Aurora
Amazon AuroraAmazon Aurora
Amazon Aurora
 
Client Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right WayClient Drivers and Cassandra, the Right Way
Client Drivers and Cassandra, the Right Way
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability Practices
 
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
Choosing an HDFS data storage format- Avro vs. Parquet and more - StampedeCon...
 
Schema-on-Read vs Schema-on-Write
Schema-on-Read vs Schema-on-WriteSchema-on-Read vs Schema-on-Write
Schema-on-Read vs Schema-on-Write
 
Presentation database security audit vault & database firewall
Presentation   database security audit vault & database firewallPresentation   database security audit vault & database firewall
Presentation database security audit vault & database firewall
 
Edge architecture ieee international conference on cloud engineering
Edge architecture   ieee international conference on cloud engineeringEdge architecture   ieee international conference on cloud engineering
Edge architecture ieee international conference on cloud engineering
 
Event-sourced architectures with Akka
Event-sourced architectures with AkkaEvent-sourced architectures with Akka
Event-sourced architectures with Akka
 

Andere mochten auch

Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...
Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...
Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...
Lightbend
 

Andere mochten auch (8)

Reactive Systems with Data Distribution Service (DDS)
Reactive Systems with Data Distribution Service (DDS)Reactive Systems with Data Distribution Service (DDS)
Reactive Systems with Data Distribution Service (DDS)
 
From functional to Reactive - patterns in domain modeling
From functional to Reactive - patterns in domain modelingFrom functional to Reactive - patterns in domain modeling
From functional to Reactive - patterns in domain modeling
 
API Centric Patterns
API Centric PatternsAPI Centric Patterns
API Centric Patterns
 
Microservices: Architecture for the Real-time Organization
Microservices: Architecture for the Real-time OrganizationMicroservices: Architecture for the Real-time Organization
Microservices: Architecture for the Real-time Organization
 
Fifty Shades of the Common Core for ELA: Revised
Fifty Shades of the Common Core for ELA: RevisedFifty Shades of the Common Core for ELA: Revised
Fifty Shades of the Common Core for ELA: Revised
 
Micro services, reactive manifesto and 12-factors
Micro services, reactive manifesto and 12-factorsMicro services, reactive manifesto and 12-factors
Micro services, reactive manifesto and 12-factors
 
Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...
Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...
Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - w...
 
Reactive app using actor model & apache spark
Reactive app using actor model & apache sparkReactive app using actor model & apache spark
Reactive app using actor model & apache spark
 

Ähnlich wie Actor Model & Reactive Manifesto

Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala Meetup
Miguel Pastor
 
Akka london scala_user_group
Akka london scala_user_groupAkka london scala_user_group
Akka london scala_user_group
Skills Matter
 
Martin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaMartin Odersky - Evolution of Scala
Martin Odersky - Evolution of Scala
Scala Italy
 

Ähnlich wie Actor Model & Reactive Manifesto (20)

DDD loves Actor Model and Actor Model loves Elixir
DDD loves Actor Model and Actor Model loves ElixirDDD loves Actor Model and Actor Model loves Elixir
DDD loves Actor Model and Actor Model loves Elixir
 
Multi-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and QuasarMulti-threading in the modern era: Vertx Akka and Quasar
Multi-threading in the modern era: Vertx Akka and Quasar
 
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive SystemsGo Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems
 
Reactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala MeetupReactive applications and Akka intro used in the Madrid Scala Meetup
Reactive applications and Akka intro used in the Madrid Scala Meetup
 
Concurrency Constructs Overview
Concurrency Constructs OverviewConcurrency Constructs Overview
Concurrency Constructs Overview
 
Spring Boot Microservices vs Akka Actor Cluster
Spring Boot Microservices vs Akka Actor Cluster Spring Boot Microservices vs Akka Actor Cluster
Spring Boot Microservices vs Akka Actor Cluster
 
Rethinking the debugger
Rethinking the debuggerRethinking the debugger
Rethinking the debugger
 
Akka london scala_user_group
Akka london scala_user_groupAkka london scala_user_group
Akka london scala_user_group
 
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaDataGPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
GPARS: Lessons from the parallel universe - Itamar Tayer, CoolaData
 
Introduction to Actor Model and Akka
Introduction to Actor Model and AkkaIntroduction to Actor Model and Akka
Introduction to Actor Model and Akka
 
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016
Un actor (model) per amico - Alessandro Melchiori - Codemotion Milan 2016
 
Lambda Expressions in Java 8
Lambda Expressions in Java 8Lambda Expressions in Java 8
Lambda Expressions in Java 8
 
Beyond fault tolerance with actor programming - Fabio Tiriticco - Codemotion ...
Beyond fault tolerance with actor programming - Fabio Tiriticco - Codemotion ...Beyond fault tolerance with actor programming - Fabio Tiriticco - Codemotion ...
Beyond fault tolerance with actor programming - Fabio Tiriticco - Codemotion ...
 
Beyond Fault Tolerance with Actor Programming
Beyond Fault Tolerance with Actor ProgrammingBeyond Fault Tolerance with Actor Programming
Beyond Fault Tolerance with Actor Programming
 
DEF CON 27 - workshop - EIGENTOURIST - hacking with monads
DEF CON 27 - workshop - EIGENTOURIST - hacking with monadsDEF CON 27 - workshop - EIGENTOURIST - hacking with monads
DEF CON 27 - workshop - EIGENTOURIST - hacking with monads
 
Multithreading and Actors
Multithreading and ActorsMultithreading and Actors
Multithreading and Actors
 
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
 
Introduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users GroupIntroduction to Akka - Atlanta Java Users Group
Introduction to Akka - Atlanta Java Users Group
 
Actors model in gpars
Actors model in gparsActors model in gpars
Actors model in gpars
 
Martin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaMartin Odersky - Evolution of Scala
Martin Odersky - Evolution of Scala
 

Mehr von Angelo Simone Scotto

Mehr von Angelo Simone Scotto (10)

Keep Calm and Distributed Tracing
Keep Calm and Distributed TracingKeep Calm and Distributed Tracing
Keep Calm and Distributed Tracing
 
Rective Programming with Actor Model in .NET
Rective Programming with Actor Model in .NETRective Programming with Actor Model in .NET
Rective Programming with Actor Model in .NET
 
DevOps, Lean and You
DevOps, Lean and YouDevOps, Lean and You
DevOps, Lean and You
 
Agile, DevOps, X-Teams: Is software a social science?
Agile, DevOps, X-Teams: Is software a social science?Agile, DevOps, X-Teams: Is software a social science?
Agile, DevOps, X-Teams: Is software a social science?
 
Adapt or Go extinct
Adapt or Go extinctAdapt or Go extinct
Adapt or Go extinct
 
Discovering RxJS - MilanoJS Meeting in May 2016
Discovering RxJS - MilanoJS Meeting in May 2016Discovering RxJS - MilanoJS Meeting in May 2016
Discovering RxJS - MilanoJS Meeting in May 2016
 
Taming Asynchrony using RxJS
Taming Asynchrony using RxJSTaming Asynchrony using RxJS
Taming Asynchrony using RxJS
 
Redis Labcamp
Redis LabcampRedis Labcamp
Redis Labcamp
 
Are Microservices our future?
Are Microservices our future?Are Microservices our future?
Are Microservices our future?
 
An Introduction to Machine Learning
An Introduction to Machine LearningAn Introduction to Machine Learning
An Introduction to Machine Learning
 

Kürzlich hochgeladen

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 

Kürzlich hochgeladen (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

Actor Model & Reactive Manifesto

  • 1. Actor Model and Reactive Manifesto Angelo Simone Scotto Cluster Reply
  • 2. The Reactive Manifesto You can never solve a problem on the level on which it was created.
  • 3. 3 New tools for a new era
  • 5. 5 “In karate, there is an image that's used to define the position of perfect readiness: "mind like water" Imagine throwing a pebble into a still pond. How does the water respond? The answer is, totally appropriately to the force and mass of the input; then it returns to calm. It doesn't overreact or underreact” Not just for software
  • 6. 6 Hardware is going reactive too. TrueNorth neurosynaptic chip, IBM Research
  • 8. 8 Reactive: It’s all about concurrency Event Driven Scalable Resilient Responsive
  • 9. 9 • Usually, code we write is thought to be executed sequentially. • We tend to use shared state and synchronization mechanism such as locks to face concurrent executions. • Sharing and Locking exposes us to new set of problems: Deadlock, Livelock, Starvation, False Sharing, … • «…our intellectual powers are rather geared to master static relations and that our powers to visualize processes evolving in time are relatively poorly developed..» E. Dijkstra, 1968 • «There are severe limits in how much can be kept in mind at once (about 3–5 items)” N. Cowan, 2010 • «It’s the damn humans. The critters simply can’t think in parallel» G. Bracha, 2014 Concurrency IS hard
  • 10. Introducing the Actor Model Nothing is more powerful than an idea whose time has come.
  • 11. 14 Introducing the Actor Model “A Universal Modular Actor Formalism for Artificial Intelligence” concurrent human organizations laws of physics Carl Hewitt
  • 12. 15 An Actor: • Is an object with an identity. • Has a behavior. • Only interacts using asynchronous message passing. What is an Actor
  • 13. 17 An Actor: • Is an object with an identity. • Has a behavior. • Only interacts using asynchronous message passing. What is an Actor What time is it? 12:37
  • 14. 18 An Actor can: • send a finite number of messages to other actors; • create a finite number of new actors; • designate the behavior to be used for the next message it receives. What can an actor do ? What time is it? 12:37
  • 15. 19 Actor libraries and frameworks • Actor framework exists for all major programming languages. • Most notables are: Erlang (since 1986) Akka for Scala & Java (since 2009)
  • 16. 20 Show me some code ! // A simple actor class Echo extends Actor { def receive = { case value: String => println(value) case _ => println("ERROR: received unknown message") } }
  • 17. 22 class AtomicInteger extends Actor { var innerValue = 0; def receive = { case Initialize(value) => innerValue = value; case Increment(value) => innerValue += value; sender ! innerValue; case Decrement(value) => innerValue -= value; sender ! innerValue; } } Single actors are synchronous
  • 18. 23 Hewitt example of actor system US Department of State Organization chart
  • 19. 24 As they most probably are…
  • 20. 25 Just for reactive software? OOP messaging, local retention protection hiding of state-process Actor model retained the good features of the object idea Alan Kay
  • 21. 30 Good enough for them? Good enough for you! Erlang Use Cases
  • 22. 31 Good enough for them? Good enough for you! Akka Use Cases
  • 23. Reactive Manifesto: http://www.reactivemanifesto.org/ Principle of Reactive Programming: https://www.coursera.org/course/reactive Akka website: http://akka.io/ Erlang: http://www.erlang.org/ Actor Model Implementations: http://en.wikipedia.org/wiki/Actor_model#Actor_libraries_and_frameworks Hewitt, Meijer and Szyperski: The Actor Model: https://www.youtube.com/watch?v=7erJ1DV_Tlo Reactive Design Patterns: http://www.manning.com/kuhn/ Reactive Enterprise with Actor Model: http://www.amazon.com/Reactive-Enterprise-Actor-Model-Application/dp/0133846830 How Twitter is scaling: https://waimingmok.wordpress.com/2009/06/27/how-twitter-is-scaling/ Microsoft Orleans & Halo 4: http://caitiem.com/2014/04/03/orleans-preview-halo-4/ Linkedin Use Case: http://downloads.typesafe.com/website/casestudies/LinkedIn-Case-Study-v1.3.pdf Facebook Use Case: https://www.facebook.com/note.php?note_id=14218138919 Yahoo! Use Case: http://www.drdobbs.com/parallel/using-erlang-to-build-reliable-fault-tol/220600332 Amazon SimpleDB: https://gigaom.com/2007/12/14/amazon-web-services-launches-simpledb-beta/