SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
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

Más contenido relacionado

Destacado

Destacado (19)

Ata pune 12 meetup 17 September 2016 - Introduction by Amol Deshpande
Ata pune 12 meetup 17 September 2016 - Introduction by Amol DeshpandeAta pune 12 meetup 17 September 2016 - Introduction by Amol Deshpande
Ata pune 12 meetup 17 September 2016 - Introduction by Amol Deshpande
 
Ata pune 12 meetup Future of testing 17 sep 2016 by sanjay upadhyay
Ata pune 12 meetup  Future of testing 17 sep 2016 by sanjay upadhyayAta pune 12 meetup  Future of testing 17 sep 2016 by sanjay upadhyay
Ata pune 12 meetup Future of testing 17 sep 2016 by sanjay upadhyay
 
Paris Qa Meetup - Testing Family
Paris Qa Meetup -  Testing FamilyParis Qa Meetup -  Testing Family
Paris Qa Meetup - Testing Family
 
Java Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDDJava Beginners Meetup February 2017: Testing and TDD
Java Beginners Meetup February 2017: Testing and TDD
 
Meetup kickoff slides - Perfecto Mobile, September 2014
Meetup kickoff slides - Perfecto Mobile, September 2014Meetup kickoff slides - Perfecto Mobile, September 2014
Meetup kickoff slides - Perfecto Mobile, September 2014
 
DevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as CodeDevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as Code
 
RST - Makati Testers Meetup
RST - Makati Testers MeetupRST - Makati Testers Meetup
RST - Makati Testers Meetup
 
Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico...
Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico...Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico...
Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico...
 
Helsinki Legal Tech Meetup introduction
Helsinki Legal Tech Meetup introductionHelsinki Legal Tech Meetup introduction
Helsinki Legal Tech Meetup introduction
 
Tundra at Agile Mississauga Meetup Kick off Event
Tundra at Agile Mississauga Meetup Kick off EventTundra at Agile Mississauga Meetup Kick off Event
Tundra at Agile Mississauga Meetup Kick off Event
 
NoVA UX Meetup: Product Testing and Data-informed Design
NoVA UX Meetup: Product Testing and Data-informed DesignNoVA UX Meetup: Product Testing and Data-informed Design
NoVA UX Meetup: Product Testing and Data-informed Design
 
The Invisible Art Of Software Testing
The Invisible Art Of Software TestingThe Invisible Art Of Software Testing
The Invisible Art Of Software Testing
 
Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]
 
Atagtr2017 tentative Speaker List
Atagtr2017 tentative Speaker ListAtagtr2017 tentative Speaker List
Atagtr2017 tentative Speaker List
 
Doing Agile Being Agile - Agile Mississauga Meetup Kick off Event
Doing Agile Being Agile - Agile Mississauga Meetup Kick off EventDoing Agile Being Agile - Agile Mississauga Meetup Kick off Event
Doing Agile Being Agile - Agile Mississauga Meetup Kick off Event
 
Introduction openstack-meetup-nov-28
Introduction openstack-meetup-nov-28Introduction openstack-meetup-nov-28
Introduction openstack-meetup-nov-28
 
Eris Industries - An Introduction at BitcoinNYC Meetup
Eris Industries - An Introduction at BitcoinNYC MeetupEris Industries - An Introduction at BitcoinNYC Meetup
Eris Industries - An Introduction at BitcoinNYC Meetup
 
Lean Usability
Lean UsabilityLean Usability
Lean Usability
 
Meetup How we became Software testing world champion
Meetup How we became Software testing world championMeetup How we became Software testing world champion
Meetup How we became Software testing world champion
 

Similar a Introduction to Reactive

VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
Eonblast
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
Aron 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 2013
Aron Ahmadia
 
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
Marco Cedaro
 

Similar a 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
 

Más de Cantina

Más de Cantina (17)

Sketching for UX Designers
Sketching for UX DesignersSketching for UX Designers
Sketching for UX Designers
 
Demystifying the Design Process
Demystifying the Design ProcessDemystifying the Design Process
Demystifying the Design Process
 
Software is not a Building - Designing Technical Architecture for Change
Software is not a Building - Designing Technical Architecture for ChangeSoftware is not a Building - Designing Technical Architecture for Change
Software is not a Building - Designing Technical Architecture for Change
 
Planning For design
Planning For designPlanning For design
Planning For design
 
Five Key Ingredients in Successful Mobile Projects
Five Key Ingredients in Successful Mobile ProjectsFive Key Ingredients in Successful Mobile Projects
Five Key Ingredients in Successful Mobile Projects
 
Delivering Responsive Design at Scale
Delivering Responsive Design at ScaleDelivering Responsive Design at Scale
Delivering Responsive Design at Scale
 
Design i/o - Creating Visual Interfaces for Digital Systems
Design i/o - Creating Visual Interfaces for Digital SystemsDesign i/o - Creating Visual Interfaces for Digital Systems
Design i/o - Creating Visual Interfaces for Digital Systems
 
Intro to facade
Intro to facadeIntro to facade
Intro to facade
 
Choices for Responsive Redesign: Ground-up or Responsive Retrofit
Choices for Responsive Redesign: Ground-up or Responsive RetrofitChoices for Responsive Redesign: Ground-up or Responsive Retrofit
Choices for Responsive Redesign: Ground-up or Responsive Retrofit
 
Choices for Responsive Redesign: Ground-up or Responsive Retrofit
Choices for Responsive Redesign: Ground-up or Responsive RetrofitChoices for Responsive Redesign: Ground-up or Responsive Retrofit
Choices for Responsive Redesign: Ground-up or Responsive Retrofit
 
Utilizing Lean Practices in the Enterprise: Part 1 of Delivering the Connecte...
Utilizing Lean Practices in the Enterprise: Part 1 of Delivering the Connecte...Utilizing Lean Practices in the Enterprise: Part 1 of Delivering the Connecte...
Utilizing Lean Practices in the Enterprise: Part 1 of Delivering the Connecte...
 
Demystifying Content Strategy: Part 2 of Delivering the Connected Experience
Demystifying Content Strategy: Part 2 of Delivering the Connected ExperienceDemystifying Content Strategy: Part 2 of Delivering the Connected Experience
Demystifying Content Strategy: Part 2 of Delivering the Connected Experience
 
Domain-Driven Design: Part 4 from Delivering the Connected Experience
Domain-Driven Design: Part 4 from Delivering the Connected ExperienceDomain-Driven Design: Part 4 from Delivering the Connected Experience
Domain-Driven Design: Part 4 from Delivering the Connected Experience
 
The Need For Speed: Part 5 of Delivering the Connected Experience
The Need For Speed: Part 5 of Delivering the Connected ExperienceThe Need For Speed: Part 5 of Delivering the Connected Experience
The Need For Speed: Part 5 of Delivering the Connected Experience
 
Designing the Connected Experience: Part 3 from Delivering the Connected Expe...
Designing the Connected Experience: Part 3 from Delivering the Connected Expe...Designing the Connected Experience: Part 3 from Delivering the Connected Expe...
Designing the Connected Experience: Part 3 from Delivering the Connected Expe...
 
A Brief History of Input Devices with Cantina's Daniel Bostwick
A Brief History of Input Devices with Cantina's Daniel BostwickA Brief History of Input Devices with Cantina's Daniel Bostwick
A Brief History of Input Devices with Cantina's Daniel Bostwick
 
Mobile Monday Presentation: Responsive Web Design
Mobile Monday Presentation: Responsive Web DesignMobile Monday Presentation: Responsive Web Design
Mobile Monday Presentation: Responsive Web Design
 

Último

Último (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Introduction to Reactive