SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Boston Reactive
Software Meetup
Introduction to Reactive
Presented by
!

Steven Pember

Principal Consultant , Technical Architect at Cantina

David Fox

Principal Consultant , Technical Architect at Cantina

!2
What is Reactive?

!3
What is Reactive?
A buzzword

!4
What is Reactive?
A popular (comp) science buzzword

!5
The Reactive Manifesto
Written by Jonas Bonér with
contributions by Erik Meijer,
Martin Odersky, Greg Young,
Martin Thompson, Roland Kuhn,
James Ward and Guillaume Bort.

!6
tl;dr

1. WAY more traffic than just a few years ago
2. Users expect immediate response
3. Need 100% uptime
4. Large amounts of data
5. Need better models of concurrency
6. Old models like servlet showing their age

!7
The Four Traits
These are the traits they use to
describe this class of software.

!8
The Four Traits
Note how they play off one
another to form a cohesive whole

!9
changeable

The Missing Traits
There should really be a couple
more traits…

!10
changeable

The Missing Traits
There should really be a couple
more traits…

managable

!11
Reactive Technologies
not just from Typesafe!

!12
These are all “Reactive” technologies

!13
These are all “Reactive” technologies
Reactive isn’t about particular technologies,
it’s a holistic view of application architecture to support
the needs of the current generation of applications

!14
As developers, we need to see the whole picture
of the application, from the front-end to the back-end. It’s
not enough to just use a “reactive framework”.

!15
Spray Framework
HTTP for Akka Actors

!16
Akka

•

De-facto Actor implementation for Scala

•

Replaced Scala’s actor implementation

•

Team wanted to keep Scala smaller

•

Better as a separate framework

•

Used as basis of Play and Spray and many
other frameworks

!17
Actor
Model

•

Invented in 1973 by Carl Hewitt, Peter
Bishop, and Richard Steiger at MIT's AI lab

•

A design pattern for concurrency

•

Encapsulates state and behavior

•

Alleviates the need for locks

•

Allows work to be scheduled fairly

!18
How do actors work?

!19
Actor Receives Message
Message is placed into the
actor’s mailbox

!20
Actor Scheduled
The actor system’s scheduler
schedules the actor to run in a
thread.
!

The actor processes a message
according to its behavior

!21
Execution Complete
The actor state is modified.
!

The scheduler will continue to
fairly schedule the actor to run
while its mailbox has messages.

!22
Akka’s actors also have supervision
strategies for failure

!23
Supervision

•

By default, when an actor crashes, it will
simply be restarted by the system
!

•

Other strategies can be employed such as:
• Resume keeping state
• Resume clearing state
• Terminate the actor permanently
• Escalate, failing the supervising actor

!24
Other
Features

•
•
•
•

Finite state machine mixin
Typed actor proxy for integration with nonactor-based code
Location transparency / clustering
Support for event/command sourcing

!25
What Are the Drawbacks?
•
•
•

Programming with actors is more difficult
Type safety is lost
Not as easy to compose

!26
Promises
&
Futures

•

Synchronization constructs/patterns

•

Allow use of values which will be eventually
available at a later point in time

•

Terms sometimes used interchangeably

•

A promise is a container to write a value to

•

A future is a handle used to read that value

!27
Spray Framework
Live coding demo

!28
Cantina is a digital agency that plans, 

designs and builds connected experiences 

and product innovations.

!29

Weitere ähnliche Inhalte

Andere mochten auch

Bridging the gap
Bridging the gap Bridging the gap
Bridging the gap MSchoonmade
 
La valigia è pronta
La valigia è prontaLa valigia è pronta
La valigia è pronta_Francesca_
 
Storia2 la principessa, il suo cane e il serpente a sonagli
Storia2 la principessa, il suo cane e il serpente a sonagliStoria2 la principessa, il suo cane e il serpente a sonagli
Storia2 la principessa, il suo cane e il serpente a sonagli_Francesca_
 
Cantina Web Content Management (WCM) Webinar
Cantina Web Content Management (WCM) WebinarCantina Web Content Management (WCM) Webinar
Cantina Web Content Management (WCM) WebinarMitchel Ahern
 
Sustainable Agriculture as Solution to Global Challenges
Sustainable Agriculture as Solution to Global ChallengesSustainable Agriculture as Solution to Global Challenges
Sustainable Agriculture as Solution to Global Challengessekem
 

Andere mochten auch (10)

компас
компаскомпас
компас
 
Bridging the gap
Bridging the gap Bridging the gap
Bridging the gap
 
компас
компаскомпас
компас
 
La valigia è pronta
La valigia è prontaLa valigia è pronta
La valigia è pronta
 
Storia2 la principessa, il suo cane e il serpente a sonagli
Storia2 la principessa, il suo cane e il serpente a sonagliStoria2 la principessa, il suo cane e il serpente a sonagli
Storia2 la principessa, il suo cane e il serpente a sonagli
 
Enrichment activity jess
Enrichment activity jessEnrichment activity jess
Enrichment activity jess
 
романтизъм
романтизъмромантизъм
романтизъм
 
Continuità
ContinuitàContinuità
Continuità
 
Cantina Web Content Management (WCM) Webinar
Cantina Web Content Management (WCM) WebinarCantina Web Content Management (WCM) Webinar
Cantina Web Content Management (WCM) Webinar
 
Sustainable Agriculture as Solution to Global Challenges
Sustainable Agriculture as Solution to Global ChallengesSustainable Agriculture as Solution to Global Challenges
Sustainable Agriculture as Solution to Global Challenges
 

Ähnlich wie Introduction to Reactive

Coder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureCoder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureThomas Pierrain
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): RevistedMike Harris
 
jsDay - Javascript as a programming language
jsDay - Javascript as a programming languagejsDay - Javascript as a programming language
jsDay - Javascript as a programming languageMarco Cedaro
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012Eonblast
 
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, Instruct
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, InstructPuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, Instruct
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, InstructPuppet
 
Made for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSMade for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSVMware Tanzu
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesAron Ahmadia
 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Aron Ahmadia
 
Test Driven Development - Workshop
Test Driven Development - WorkshopTest Driven Development - Workshop
Test Driven Development - WorkshopAnjana Somathilake
 
Stakeholders’ information needs for artifacts and their dependencies in a rea...
Stakeholders’ information needs for artifacts and their dependencies in a rea...Stakeholders’ information needs for artifacts and their dependencies in a rea...
Stakeholders’ information needs for artifacts and their dependencies in a rea...s-mueller
 
Code refactoring
Code refactoringCode refactoring
Code refactoringLalit Kale
 
Effective development of a finite-element solver at the University
Effective development of a finite-element solver at the UniversityEffective development of a finite-element solver at the University
Effective development of a finite-element solver at the UniversityRomain Boman
 
YOOX Launch & Learn - Javascript as a programming language
 YOOX Launch & Learn - Javascript as a programming language YOOX Launch & Learn - Javascript as a programming language
YOOX Launch & Learn - Javascript as a programming languageMarco Cedaro
 
Implementing Puppet at a South American Government Agency, Challenges and Sol...
Implementing Puppet at a South American Government Agency, Challenges and Sol...Implementing Puppet at a South American Government Agency, Challenges and Sol...
Implementing Puppet at a South American Government Agency, Challenges and Sol...Puppet
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
10 Big Ideas from Industry
10 Big Ideas from Industry10 Big Ideas from Industry
10 Big Ideas from IndustryGarth Gilmour
 
Ruby codebases in an entropic universe
Ruby codebases in an entropic universeRuby codebases in an entropic universe
Ruby codebases in an entropic universeNiranjan Paranjape
 

Ähnlich wie Introduction to Reactive (20)

Coder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architectureCoder sans peur du changement avec la meme pas mal hexagonal architecture
Coder sans peur du changement avec la meme pas mal hexagonal architecture
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 
jsDay - Javascript as a programming language
jsDay - Javascript as a programming languagejsDay - Javascript as a programming language
jsDay - Javascript as a programming language
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
 
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, Instruct
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, InstructPuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, Instruct
PuppetConf 2017: No Server Left Behind - Miguel Di Ciurcio Filho, Instruct
 
Made for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaSMade for Each Other: Microservices + PaaS
Made for Each Other: Microservices + PaaS
 
MongoDB at Scale!
MongoDB at Scale!MongoDB at Scale!
MongoDB at Scale!
 
InfectNet Technical
InfectNet TechnicalInfectNet Technical
InfectNet Technical
 
DevOps 201607
DevOps 201607 DevOps 201607
DevOps 201607
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013
 
Test Driven Development - Workshop
Test Driven Development - WorkshopTest Driven Development - Workshop
Test Driven Development - Workshop
 
Stakeholders’ information needs for artifacts and their dependencies in a rea...
Stakeholders’ information needs for artifacts and their dependencies in a rea...Stakeholders’ information needs for artifacts and their dependencies in a rea...
Stakeholders’ information needs for artifacts and their dependencies in a rea...
 
Code refactoring
Code refactoringCode refactoring
Code refactoring
 
Effective development of a finite-element solver at the University
Effective development of a finite-element solver at the UniversityEffective development of a finite-element solver at the University
Effective development of a finite-element solver at the University
 
YOOX Launch & Learn - Javascript as a programming language
 YOOX Launch & Learn - Javascript as a programming language YOOX Launch & Learn - Javascript as a programming language
YOOX Launch & Learn - Javascript as a programming language
 
Implementing Puppet at a South American Government Agency, Challenges and Sol...
Implementing Puppet at a South American Government Agency, Challenges and Sol...Implementing Puppet at a South American Government Agency, Challenges and Sol...
Implementing Puppet at a South American Government Agency, Challenges and Sol...
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
10 Big Ideas from Industry
10 Big Ideas from Industry10 Big Ideas from Industry
10 Big Ideas from Industry
 
Ruby codebases in an entropic universe
Ruby codebases in an entropic universeRuby codebases in an entropic universe
Ruby codebases in an entropic universe
 

Kürzlich hochgeladen

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Kürzlich hochgeladen (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Introduction to Reactive