SlideShare a Scribd company logo
1 of 19
Download to read offline
Akka Actors
Architectural framework
enabling business
Srinivas Chillara, Nirmalya Sengupta
SwanSpeed Consulting
A big headache of a User-story
A story of how good actors chopped it up
and brought together all... coolly!
Agenda
● The background (case-study)
● Problems with user stories which span distributed applications
● How do we split this user story?
● And How do we bring all of this together?
● What Actors-based distributed framework solve ( inc brief of Akka)
● Some comments on testing such cases
● QnA
Three main aspects of discussion
● Object Orientation
○ Message Passing
○ Encapsulation
● Distributed (networked) objects/components/services
● Multicore machines and threading model
The Story
As a travel agent
I'd like to book an entire business trip
so that the busy executive has a single voucher/ref
● USP: One shot booking and single voucher
The Story break down
{ Return flight, Hotel, and airport transfers }
1. How can we split this story?
2. How should we prioritise these?
3. What if a new partner airline become available?
4. How do we handle these in sprints?
What was OO supposed to be?
https://www.thefamouspeople.com/profiles/alan-curtis-kay-637.php
Dr. Alan Curtis Kay
“..But just to show how
stubbornly an idea can hang on,
all through the seventies and
eighties, there were many people
who tried to get by with “Remote
Procedure Call” instead of
thinking about objects and
messages...”
Your application is a stage for the
...Actors!
Operating System
JVM Address space
Objects and methods (co-locality)
Object a (of type A) Object b (of type B)
// Some method of Class A…
{
……
B b = new B(...).
int i = 20;
String s = b.m(i)
….
}
Objects and methods
(distributed, yet same OS)
Object a (of type A)
Operating System
JVM Address space
Object b (of type B)
JVM Address space
Object a (of type A)
What if the called process hasn’t started yet
Or, has already exited?
Objects and methods
(distributed, different machines)
Operating System (machine 2)
Operating System (machine 1)
JVM Address space
Object b (of type B)
JVM Address space
Object a (of type A)
Method call,
across
machine
boundariesW
hat if the
netw
ork
is
unavailable?
Distributed System: requires caution
A di r ed s e s e w h e f u f
a c te di 't e k ex d a r r
yo n o p un le.
- Les La p
Distributed System: fallacies
- The network is reliable.
- Latency is zero.
- Bandwidth is infinite.
- The network is secure.
- Topology doesn’t change.
- There is one administrator.
- Transport cost is zero.
- The network is homogeneous.
Actors: Brief history and resource
● Concept brought by Carl Hewitt et. al. (1973)
● First commercial implementation
○ Ericsson’s next Generation switches: Erlang
● In the JVM world: Akka (Scala, Java)
○ Lightbend.com provides technology (open-source)
○ Akka’s Actor Model is heavily influenced by Erlang’s
● Microsoft provides Akka.NET (C#)
● Innumerable learning resources
Actors: What do they offer
● Actors are just like our everyday objects
● Actors work only on messages
○ One cannot call a method on an Actor
● Actors are asynchronous by intent and design
○ A response (i.e, a return value) is never guaranteed
● Actors are distributed by default (no co-locality assumed)
● An Actor is designed to work in a single threaded manner
○ (but) Several Actors can work simultaneously
○ Hundreds of thousands of Actors can co-exist
Actors: Mailbox of messages
https://www.safaribooksonline.com/library/view/applied-akka-patterns/9781491934876/ch01.html
Code to
handle/process
messages
Code to
handle/process
messages
Actors: a typical application
http://tutorials.jenkov.com/java-concurrency/concurrency-models.htmlhtml
DB
Browser
ActorSystem
● Every Actor has its
own mailbox
● Every Actor runs
some application
logic
● Each actor passes a
message, never calls
a method
Actors: Success Stories
● Twitter
● Samsung
● Bet365
● Verizon
● LinkedIn
● Walmart
● Paypal
● Zalando
● Multiplayer Gaming
● Device Monitoring
● Shipping
● Medical Device
Coordination
● Credit Card Authentication
Self-praise
● (very) old hat, but just doesn’t fade
● C -> C++ -> Java -> Scala (bash/perl)
● Only Unix/Linux, No Microsoft! :-)
● Working as a freelance backend stack developer/mentor/architect
● Integration framework (CORBA), telecom, multiplayer gaming, IoT
backend, Data Engineering/Streaming
● India, Ireland, Germany
● Intermittently Consulting/Mentoring/Hosting Workshops

More Related Content

What's hot

Swift language - A fast overview of some features
Swift language - A fast overview of some featuresSwift language - A fast overview of some features
Swift language - A fast overview of some featuresWeverton Timoteo
 
Lua. The Splendors and Miseries of Game Scripting
Lua. The Splendors and Miseries of Game ScriptingLua. The Splendors and Miseries of Game Scripting
Lua. The Splendors and Miseries of Game ScriptingDevGAMM Conference
 
Introduction to f#
Introduction to f#Introduction to f#
Introduction to f#mjyeaney
 
Comparing Golang and understanding Java Value Types
Comparing Golang and understanding Java Value TypesComparing Golang and understanding Java Value Types
Comparing Golang and understanding Java Value TypesPéter Verhás
 
Intro to Objective C
Intro to Objective CIntro to Objective C
Intro to Objective CAshiq Uz Zoha
 
WDB005.1 - JavaScript for Java Developers (Lecture 1)
WDB005.1 - JavaScript for Java Developers (Lecture 1)WDB005.1 - JavaScript for Java Developers (Lecture 1)
WDB005.1 - JavaScript for Java Developers (Lecture 1)Igor Khotin
 
C++ in object oriented programming
C++ in object oriented programmingC++ in object oriented programming
C++ in object oriented programmingSaket Khopkar
 
OOP->A Bird's-eye view
OOP->A Bird's-eye viewOOP->A Bird's-eye view
OOP->A Bird's-eye viewSaugata Bose
 
Lightning talk: Kotlin
Lightning talk: KotlinLightning talk: Kotlin
Lightning talk: KotlinEvolve
 
Beginning Java for .NET developers
Beginning Java for .NET developersBeginning Java for .NET developers
Beginning Java for .NET developersAndrei Rinea
 
I18nize Scala programs à la gettext
I18nize Scala programs à la gettextI18nize Scala programs à la gettext
I18nize Scala programs à la gettextNgoc Dao
 
CeedMath & CeedGL, Let's talk 3D...
CeedMath & CeedGL, Let's talk 3D...CeedMath & CeedGL, Let's talk 3D...
CeedMath & CeedGL, Let's talk 3D...rsebbe
 
Unsafe to typesafe
Unsafe to typesafeUnsafe to typesafe
Unsafe to typesaferegisleray
 
Effective Scala: Programming Patterns
Effective Scala: Programming PatternsEffective Scala: Programming Patterns
Effective Scala: Programming PatternsVasil Remeniuk
 
Advanced Reflection in Pharo
Advanced Reflection in PharoAdvanced Reflection in Pharo
Advanced Reflection in PharoMarcus Denker
 
Real-World Scala Design Patterns
Real-World Scala Design PatternsReal-World Scala Design Patterns
Real-World Scala Design PatternsNLJUG
 

What's hot (20)

Swift language - A fast overview of some features
Swift language - A fast overview of some featuresSwift language - A fast overview of some features
Swift language - A fast overview of some features
 
Lua. The Splendors and Miseries of Game Scripting
Lua. The Splendors and Miseries of Game ScriptingLua. The Splendors and Miseries of Game Scripting
Lua. The Splendors and Miseries of Game Scripting
 
Introduction to f#
Introduction to f#Introduction to f#
Introduction to f#
 
Comparing Golang and understanding Java Value Types
Comparing Golang and understanding Java Value TypesComparing Golang and understanding Java Value Types
Comparing Golang and understanding Java Value Types
 
Intro to Objective C
Intro to Objective CIntro to Objective C
Intro to Objective C
 
WDB005.1 - JavaScript for Java Developers (Lecture 1)
WDB005.1 - JavaScript for Java Developers (Lecture 1)WDB005.1 - JavaScript for Java Developers (Lecture 1)
WDB005.1 - JavaScript for Java Developers (Lecture 1)
 
C++ in object oriented programming
C++ in object oriented programmingC++ in object oriented programming
C++ in object oriented programming
 
Face recognition system
Face recognition systemFace recognition system
Face recognition system
 
OOP->A Bird's-eye view
OOP->A Bird's-eye viewOOP->A Bird's-eye view
OOP->A Bird's-eye view
 
Lightning talk: Kotlin
Lightning talk: KotlinLightning talk: Kotlin
Lightning talk: Kotlin
 
Beginning Java for .NET developers
Beginning Java for .NET developersBeginning Java for .NET developers
Beginning Java for .NET developers
 
I18nize Scala programs à la gettext
I18nize Scala programs à la gettextI18nize Scala programs à la gettext
I18nize Scala programs à la gettext
 
CeedMath & CeedGL, Let's talk 3D...
CeedMath & CeedGL, Let's talk 3D...CeedMath & CeedGL, Let's talk 3D...
CeedMath & CeedGL, Let's talk 3D...
 
Introduction to c ++ part -1
Introduction to c ++   part -1Introduction to c ++   part -1
Introduction to c ++ part -1
 
Unsafe to typesafe
Unsafe to typesafeUnsafe to typesafe
Unsafe to typesafe
 
Effective Scala: Programming Patterns
Effective Scala: Programming PatternsEffective Scala: Programming Patterns
Effective Scala: Programming Patterns
 
Advanced Reflection in Pharo
Advanced Reflection in PharoAdvanced Reflection in Pharo
Advanced Reflection in Pharo
 
Real-World Scala Design Patterns
Real-World Scala Design PatternsReal-World Scala Design Patterns
Real-World Scala Design Patterns
 
AngularConf2015
AngularConf2015AngularConf2015
AngularConf2015
 
Scala
ScalaScala
Scala
 

Similar to Akka actorstotherescue nirmalya sengupta

Model with actors and implement with Akka
Model with actors and implement with AkkaModel with actors and implement with Akka
Model with actors and implement with AkkaNgoc Dao
 
Oop2011 actor presentation_stal
Oop2011 actor presentation_stalOop2011 actor presentation_stal
Oop2011 actor presentation_stalMichael Stal
 
Akka Microservices Architecture And Design
Akka Microservices Architecture And DesignAkka Microservices Architecture And Design
Akka Microservices Architecture And DesignYaroslav Tkachenko
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programmingAbzetdin Adamov
 
Basic info on java intro
Basic info on java introBasic info on java intro
Basic info on java introkabirmahlotra
 
Actor model in .NET - Akka.NET
Actor model in .NET - Akka.NETActor model in .NET - Akka.NET
Actor model in .NET - Akka.NETKonrad Dusza
 
Design patterns in javascript
Design patterns in javascriptDesign patterns in javascript
Design patterns in javascriptAyush Sharma
 
Introduction to concurrent programming with akka actors
Introduction to concurrent programming with akka actorsIntroduction to concurrent programming with akka actors
Introduction to concurrent programming with akka actorsdatamantra
 
Introduction to concurrent programming with Akka actors
Introduction to concurrent programming with Akka actorsIntroduction to concurrent programming with Akka actors
Introduction to concurrent programming with Akka actorsShashank L
 
Actor Model and C++: what, why and how?
Actor Model and C++: what, why and how?Actor Model and C++: what, why and how?
Actor Model and C++: what, why and how?Yauheni Akhotnikau
 
1 Introduction to JAVA.pptx
1 Introduction to JAVA.pptx1 Introduction to JAVA.pptx
1 Introduction to JAVA.pptxKabiles07
 
Concurrency Constructs Overview
Concurrency Constructs OverviewConcurrency Constructs Overview
Concurrency Constructs Overviewstasimus
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusBoldRadius Solutions
 
Java-Intro.pptx
Java-Intro.pptxJava-Intro.pptx
Java-Intro.pptxVijalJain3
 
Reactive Software Systems
Reactive Software SystemsReactive Software Systems
Reactive Software SystemsBehrad Zari
 

Similar to Akka actorstotherescue nirmalya sengupta (20)

Model with actors and implement with Akka
Model with actors and implement with AkkaModel with actors and implement with Akka
Model with actors and implement with Akka
 
Oop2011 actor presentation_stal
Oop2011 actor presentation_stalOop2011 actor presentation_stal
Oop2011 actor presentation_stal
 
Akka Microservices Architecture And Design
Akka Microservices Architecture And DesignAkka Microservices Architecture And Design
Akka Microservices Architecture And Design
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programming
 
Basic info on java intro
Basic info on java introBasic info on java intro
Basic info on java intro
 
Actor model in .NET - Akka.NET
Actor model in .NET - Akka.NETActor model in .NET - Akka.NET
Actor model in .NET - Akka.NET
 
Design patterns in javascript
Design patterns in javascriptDesign patterns in javascript
Design patterns in javascript
 
Introduction to concurrent programming with akka actors
Introduction to concurrent programming with akka actorsIntroduction to concurrent programming with akka actors
Introduction to concurrent programming with akka actors
 
Introduction to concurrent programming with Akka actors
Introduction to concurrent programming with Akka actorsIntroduction to concurrent programming with Akka actors
Introduction to concurrent programming with Akka actors
 
Actor Model Akka Framework
Actor Model Akka FrameworkActor Model Akka Framework
Actor Model Akka Framework
 
Cloud accounting software uk
Cloud accounting software ukCloud accounting software uk
Cloud accounting software uk
 
Actor Model and C++: what, why and how?
Actor Model and C++: what, why and how?Actor Model and C++: what, why and how?
Actor Model and C++: what, why and how?
 
1 Introduction to JAVA.pptx
1 Introduction to JAVA.pptx1 Introduction to JAVA.pptx
1 Introduction to JAVA.pptx
 
Concurrency Constructs Overview
Concurrency Constructs OverviewConcurrency Constructs Overview
Concurrency Constructs Overview
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadius
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Java-Intro.pptx
Java-Intro.pptxJava-Intro.pptx
Java-Intro.pptx
 
Reactive Software Systems
Reactive Software SystemsReactive Software Systems
Reactive Software Systems
 
Cs2305 programming paradigms lecturer notes
Cs2305   programming paradigms lecturer notesCs2305   programming paradigms lecturer notes
Cs2305 programming paradigms lecturer notes
 
3. jvm
3. jvm3. jvm
3. jvm
 

More from apgionline

Collaboration secret power to shift through change lizzy morris
Collaboration secret power to shift through change lizzy morrisCollaboration secret power to shift through change lizzy morris
Collaboration secret power to shift through change lizzy morrisapgionline
 
Autonomic computing-18th may dhiren shah prachi shah
Autonomic computing-18th may dhiren shah prachi shahAutonomic computing-18th may dhiren shah prachi shah
Autonomic computing-18th may dhiren shah prachi shahapgionline
 
Agile for everything dan greening
Agile for everything dan greeningAgile for everything dan greening
Agile for everything dan greeningapgionline
 
Agile coach as psychologists chandan lal patary
Agile coach as psychologists chandan lal pataryAgile coach as psychologists chandan lal patary
Agile coach as psychologists chandan lal pataryapgionline
 
Agile beyond it case study sanika bhide
Agile beyond it case study sanika bhideAgile beyond it case study sanika bhide
Agile beyond it case study sanika bhideapgionline
 
2018 05 - human side of agile - apgi - jayaprakash prabhakar
2018 05 - human side of agile - apgi - jayaprakash prabhakar2018 05 - human side of agile - apgi - jayaprakash prabhakar
2018 05 - human side of agile - apgi - jayaprakash prabhakarapgionline
 
10 commandments-mandar-kulkarni
10 commandments-mandar-kulkarni10 commandments-mandar-kulkarni
10 commandments-mandar-kulkarniapgionline
 
Trunk based development ritabrata
Trunk based development ritabrataTrunk based development ritabrata
Trunk based development ritabrataapgionline
 
Sprint design thinking amit ranjan
Sprint design thinking amit ranjanSprint design thinking amit ranjan
Sprint design thinking amit ranjanapgionline
 
Scrum master master class
Scrum master master classScrum master master class
Scrum master master classapgionline
 
SAFe case study vandana sinha temenos
SAFe case study vandana sinha temenosSAFe case study vandana sinha temenos
SAFe case study vandana sinha temenosapgionline
 
Pratham IIT B team
Pratham IIT B teamPratham IIT B team
Pratham IIT B teamapgionline
 
Performance kanban springer nature rucha kapare
Performance kanban springer nature rucha kaparePerformance kanban springer nature rucha kapare
Performance kanban springer nature rucha kapareapgionline
 
Keynote Lizzy Morris
Keynote Lizzy MorrisKeynote Lizzy Morris
Keynote Lizzy Morrisapgionline
 
Institutionalization of user experience chaitanya inamdar
Institutionalization of user experience chaitanya inamdarInstitutionalization of user experience chaitanya inamdar
Institutionalization of user experience chaitanya inamdarapgionline
 
Infuse life embrace change sunil mundra
Infuse life embrace change sunil mundraInfuse life embrace change sunil mundra
Infuse life embrace change sunil mundraapgionline
 
How to get more out of your agile transformation nilesh kulkarni
How to get more out of your agile transformation nilesh kulkarniHow to get more out of your agile transformation nilesh kulkarni
How to get more out of your agile transformation nilesh kulkarniapgionline
 
Great orientation rahul shah
Great orientation rahul shahGreat orientation rahul shah
Great orientation rahul shahapgionline
 
Enterpreneur mindset for agile teams sharmila patwardhan
Enterpreneur mindset for agile teams sharmila patwardhanEnterpreneur mindset for agile teams sharmila patwardhan
Enterpreneur mindset for agile teams sharmila patwardhanapgionline
 
Emotional intelligence pooja wandile
Emotional intelligence pooja wandileEmotional intelligence pooja wandile
Emotional intelligence pooja wandileapgionline
 

More from apgionline (20)

Collaboration secret power to shift through change lizzy morris
Collaboration secret power to shift through change lizzy morrisCollaboration secret power to shift through change lizzy morris
Collaboration secret power to shift through change lizzy morris
 
Autonomic computing-18th may dhiren shah prachi shah
Autonomic computing-18th may dhiren shah prachi shahAutonomic computing-18th may dhiren shah prachi shah
Autonomic computing-18th may dhiren shah prachi shah
 
Agile for everything dan greening
Agile for everything dan greeningAgile for everything dan greening
Agile for everything dan greening
 
Agile coach as psychologists chandan lal patary
Agile coach as psychologists chandan lal pataryAgile coach as psychologists chandan lal patary
Agile coach as psychologists chandan lal patary
 
Agile beyond it case study sanika bhide
Agile beyond it case study sanika bhideAgile beyond it case study sanika bhide
Agile beyond it case study sanika bhide
 
2018 05 - human side of agile - apgi - jayaprakash prabhakar
2018 05 - human side of agile - apgi - jayaprakash prabhakar2018 05 - human side of agile - apgi - jayaprakash prabhakar
2018 05 - human side of agile - apgi - jayaprakash prabhakar
 
10 commandments-mandar-kulkarni
10 commandments-mandar-kulkarni10 commandments-mandar-kulkarni
10 commandments-mandar-kulkarni
 
Trunk based development ritabrata
Trunk based development ritabrataTrunk based development ritabrata
Trunk based development ritabrata
 
Sprint design thinking amit ranjan
Sprint design thinking amit ranjanSprint design thinking amit ranjan
Sprint design thinking amit ranjan
 
Scrum master master class
Scrum master master classScrum master master class
Scrum master master class
 
SAFe case study vandana sinha temenos
SAFe case study vandana sinha temenosSAFe case study vandana sinha temenos
SAFe case study vandana sinha temenos
 
Pratham IIT B team
Pratham IIT B teamPratham IIT B team
Pratham IIT B team
 
Performance kanban springer nature rucha kapare
Performance kanban springer nature rucha kaparePerformance kanban springer nature rucha kapare
Performance kanban springer nature rucha kapare
 
Keynote Lizzy Morris
Keynote Lizzy MorrisKeynote Lizzy Morris
Keynote Lizzy Morris
 
Institutionalization of user experience chaitanya inamdar
Institutionalization of user experience chaitanya inamdarInstitutionalization of user experience chaitanya inamdar
Institutionalization of user experience chaitanya inamdar
 
Infuse life embrace change sunil mundra
Infuse life embrace change sunil mundraInfuse life embrace change sunil mundra
Infuse life embrace change sunil mundra
 
How to get more out of your agile transformation nilesh kulkarni
How to get more out of your agile transformation nilesh kulkarniHow to get more out of your agile transformation nilesh kulkarni
How to get more out of your agile transformation nilesh kulkarni
 
Great orientation rahul shah
Great orientation rahul shahGreat orientation rahul shah
Great orientation rahul shah
 
Enterpreneur mindset for agile teams sharmila patwardhan
Enterpreneur mindset for agile teams sharmila patwardhanEnterpreneur mindset for agile teams sharmila patwardhan
Enterpreneur mindset for agile teams sharmila patwardhan
 
Emotional intelligence pooja wandile
Emotional intelligence pooja wandileEmotional intelligence pooja wandile
Emotional intelligence pooja wandile
 

Recently uploaded

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 

Recently uploaded (20)

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 

Akka actorstotherescue nirmalya sengupta

  • 1. Akka Actors Architectural framework enabling business Srinivas Chillara, Nirmalya Sengupta SwanSpeed Consulting
  • 2. A big headache of a User-story A story of how good actors chopped it up and brought together all... coolly!
  • 3. Agenda ● The background (case-study) ● Problems with user stories which span distributed applications ● How do we split this user story? ● And How do we bring all of this together? ● What Actors-based distributed framework solve ( inc brief of Akka) ● Some comments on testing such cases ● QnA
  • 4. Three main aspects of discussion ● Object Orientation ○ Message Passing ○ Encapsulation ● Distributed (networked) objects/components/services ● Multicore machines and threading model
  • 5. The Story As a travel agent I'd like to book an entire business trip so that the busy executive has a single voucher/ref ● USP: One shot booking and single voucher
  • 6. The Story break down { Return flight, Hotel, and airport transfers } 1. How can we split this story? 2. How should we prioritise these? 3. What if a new partner airline become available? 4. How do we handle these in sprints?
  • 7. What was OO supposed to be? https://www.thefamouspeople.com/profiles/alan-curtis-kay-637.php Dr. Alan Curtis Kay “..But just to show how stubbornly an idea can hang on, all through the seventies and eighties, there were many people who tried to get by with “Remote Procedure Call” instead of thinking about objects and messages...”
  • 8. Your application is a stage for the ...Actors!
  • 9. Operating System JVM Address space Objects and methods (co-locality) Object a (of type A) Object b (of type B) // Some method of Class A… { …… B b = new B(...). int i = 20; String s = b.m(i) …. }
  • 10. Objects and methods (distributed, yet same OS) Object a (of type A) Operating System JVM Address space Object b (of type B) JVM Address space Object a (of type A) What if the called process hasn’t started yet Or, has already exited?
  • 11. Objects and methods (distributed, different machines) Operating System (machine 2) Operating System (machine 1) JVM Address space Object b (of type B) JVM Address space Object a (of type A) Method call, across machine boundariesW hat if the netw ork is unavailable?
  • 12. Distributed System: requires caution A di r ed s e s e w h e f u f a c te di 't e k ex d a r r yo n o p un le. - Les La p
  • 13. Distributed System: fallacies - The network is reliable. - Latency is zero. - Bandwidth is infinite. - The network is secure. - Topology doesn’t change. - There is one administrator. - Transport cost is zero. - The network is homogeneous.
  • 14. Actors: Brief history and resource ● Concept brought by Carl Hewitt et. al. (1973) ● First commercial implementation ○ Ericsson’s next Generation switches: Erlang ● In the JVM world: Akka (Scala, Java) ○ Lightbend.com provides technology (open-source) ○ Akka’s Actor Model is heavily influenced by Erlang’s ● Microsoft provides Akka.NET (C#) ● Innumerable learning resources
  • 15. Actors: What do they offer ● Actors are just like our everyday objects ● Actors work only on messages ○ One cannot call a method on an Actor ● Actors are asynchronous by intent and design ○ A response (i.e, a return value) is never guaranteed ● Actors are distributed by default (no co-locality assumed) ● An Actor is designed to work in a single threaded manner ○ (but) Several Actors can work simultaneously ○ Hundreds of thousands of Actors can co-exist
  • 16. Actors: Mailbox of messages https://www.safaribooksonline.com/library/view/applied-akka-patterns/9781491934876/ch01.html Code to handle/process messages Code to handle/process messages
  • 17. Actors: a typical application http://tutorials.jenkov.com/java-concurrency/concurrency-models.htmlhtml DB Browser ActorSystem ● Every Actor has its own mailbox ● Every Actor runs some application logic ● Each actor passes a message, never calls a method
  • 18. Actors: Success Stories ● Twitter ● Samsung ● Bet365 ● Verizon ● LinkedIn ● Walmart ● Paypal ● Zalando ● Multiplayer Gaming ● Device Monitoring ● Shipping ● Medical Device Coordination ● Credit Card Authentication
  • 19. Self-praise ● (very) old hat, but just doesn’t fade ● C -> C++ -> Java -> Scala (bash/perl) ● Only Unix/Linux, No Microsoft! :-) ● Working as a freelance backend stack developer/mentor/architect ● Integration framework (CORBA), telecom, multiplayer gaming, IoT backend, Data Engineering/Streaming ● India, Ireland, Germany ● Intermittently Consulting/Mentoring/Hosting Workshops