SlideShare una empresa de Scribd logo
1 de 38
This is an era of profound change.
Implications are massive, change is unavoidable
Reactive Applications 3
Users are demanding richer
and more personalized
experiences.
Yet, at the same time,
expecting blazing fast load
time.
Users
Mobile and HTML5; Data and
compute clouds; scaling on
demand.
Modern application
technologies are fueling the
always-on, real-time user
expectation.
Applications
Businesses are being pushed
to react to these changing
user expectations…
...and embrace
modern application
requirements.
Businesses
As a matter of necessity,
businesses are going Reactive.
Reactive applications share four traits
Reactive Applications 5
Reactive applications react to
changes in the world around them.
Event-Driven
• Loosely coupled architecture, easier to extend, maintain, evolve
• Asynchronous and non-blocking
• Concurrent by design, immutable state
• Lower latency and higher throughput
Reactive Applications 7
“Clearly, the goal is to do these operations concurrently and
non-blocking, so that entire blocks of seats or sections are not locked.
We’re able to find and allocate seats under load in less than 20ms
without trying very hard to achieve it.”
Andrew Headrick, Platform Architect, Ticketfly
Reactive applications scale up
and down to meet demand.
Scalable
• Scalability and elasticity to embrace the Cloud
• Leverage all cores via asynchronous programming
• Clustered servers support joining and leaving of nodes
• More cost-efficient utilization of hardware
Reactive Applications 9
“Our traffic can increase by as much as 100x for 15 minutes each day.
Until a couple of years ago, noon was a stressful time.
Nowadays, it’s usually a non-event.”
Eric Bowman, VP Architecture, Gilt Groupe
Amdahl's Law
Reactive Applications 10
Reactive applications are architected
to handle failure at all levels.
Resilient
• Failure is embraced as a natural state in the app lifecycle
• Resilience is a first-class construct
• Failure is detected, isolated, and managed
• Applications self heal
Reactive Applications 12
“The Typesafe Reactive Platform helps us maintain a very
aggressive development and deployment cycle, all in a fail-forward manner.
It’s now the default choice for developing all new services.”
Peter Hausel, VP Engineering, Gawker Media
Reactive Applications 13
Reactive applications enrich the user
experience with low latency response.
Responsive
• Real-time, engaging, rich and collaborative
• Create an open and ongoing dialog with users
• More efficient workflow; inspires a feeling of connectedness
• Fully Reactive enabling push instead of pull
Reactive Applications 15
“The move to these technologies is already paying off.
Response times are down for processor intensive code–such as image
and PDF generation–by around 75%.”
Brian Pugh, VP of Engineering, Lucid Software
Reference Architecture
Reactive Applications 16
Play
Server
Play
Server
Play
Server
Play
Server
Web Tier Work Tier
Akka
Master
Router
Akka
Router
Standb
y
Akka
Worker
Akka
Worker
Akka
Worker
Akka
Worker
Akka
Worker
(Distributed Workers in Akka with Java/Scala Activator template)
Cost of Not Being Reactive
• Cost to your wallet and the environment
• No ability to recover from failure
• No ability to be responsive to our users
Reactive Applications 17
Functional Programming is Key
• We want to be asynchronous and non-blocking
• We need to ensure that our data is protected without locks
• Functional programming is critical to meeting these needs
• Declarative
• Immutable
• Referentially transparent
• Pure functions that only have inputs and outputs
Reactive Applications 18
Tools of the Trade
Reactive Applications 19
Tools of the Trade: Event Loops
• Leverage green threads to provide asynchronous semantics
• The core concept of Node.js and Vert.x
• Powerful abstraction for performance and potentially scalability
• Limited with respect to resilience
Reactive Applications 20
Node.js Example
Reactive Applications 21
Tools of the Trade: CSP
• Communicating Sequential Processes
• Decouples the sender and receiver by leveraging a "channel"
• The underlying principle behind Go's Goroutines and Clojure's
core.async
• Theoretically able to statically verify a deadlock will occur at
compilation time, though no popular implementation does currently
does this
• No inherent ability to send messages in a distributed environment
• No supervision for fault tolerance
Reactive Applications 22
Go Example
Reactive Applications 23
Futures
• Allow you to define behavior that will be executed on another thread
at some time
• Responses can be handled with callbacks or higher-order functions
(map, flatMap), and can be composed
• Not supervised, but do allow explicit fault tolerance via failure
callback definition
Reactive Applications 24
Java8 CompletableFuture Example
Reactive Applications 25
Tools of the Trade: CPS and Dataflow
• Take asynchronous operations and compose them into steps of
execution, like a pipeline
• Application logic looks synchronous and clean, compiled into code
that executes asynchronously
• Maintains order of execution
• Do not scale across machines
• Can be supervised (Akka Dataflow), but failure handling can depend
on tool you choose
Reactive Applications 26
Tools of the Trade: Reactive Extensions (RX)
• Combine the Iterator and Observer patterns into the Observable
• Excellent mechanism for handling streams of data
• Fault tolerance depends on implementation
• Reactive Streams (http://www.reactive-streams.org/) introduced the
requirement for handling backpressure in overwhelmed systems, as
well as a test kit to prove compliance.
Reactive Applications 27
RxJava Example
Reactive Applications 28
Tools of the Trade: Actors
• Individual entities that can only communicate by passing messages
• Excellent for isolating mutable state and protecting it without locks
• Location transparency
• Supervision
• Well-suited for creating state machines
• Several implementations, most popular are Erlang and Akka
Reactive Applications 29
Akka Example
Reactive Applications 30
Reactive is being adopted across
a wide range of industries.
Reactive Applications 32
Finance Internet/Social Media Mfg/Hardware Government Retail
Typesafe delivers the world’s leading
Reactive platform on the JVM.
Typesafe is Reactive Throughout Our Platform
JVM Based Developer Tools and Runtime
• Activator
• Ensures Adopters are Successful from the Start
• Plugin Architecture enables Third Party Integrations
• Play Framework for Web Applications
• Ideal for Responsive Web Apps
• Rest based Services and Web Socket Apps
• Supports Java and Scala
• Akka Runtime
• Highly Scalable Runtime for Java and Scala Applications
• Implementation of the Actor Model
• Reactive Streams for integration with Spring/RxJava/Vert.x/etc
• Scala Programming Language
• Scalable and Performant
• Functional programming supports reusability
Reactive Applications 34
How do I get started?
Reactive Applications 35
Typesafe is dedicated to
delivering developer success.
Receive ongoing high value – Typesafe Together
• Developer and Production Support
• Proactive tips and techniques
• Older version maintenance
• Security Vulnerability alerts
• Backstage Pass
• Ask the Expert Webinars
• Early access to online courses
• Other customer only content
• Community Spotlight
• Posting of job openings on community page
• Projects highlighted on Typesafe content sites
• Speaking opportunities at meet ups and conferences
Reactive Applications 37
“Scala was new to the group, so having commercial support and training was a big benefit.
When we wanted some help with Slick, a Typesafe consultant came out for four hours.
We got ten people in the room and got everyone up to speed. That’s the kind of
responsiveness and engagement that we really like.”
Adam Denenberg, VP Engineering, Huffington Post
©Typesafe 2014 – All Rights Reserved

Más contenido relacionado

La actualidad más candente

Sample Request for Information (RFI) Document
Sample Request for Information (RFI) DocumentSample Request for Information (RFI) Document
Sample Request for Information (RFI) Document
Victor Hernandez
 
IBM Pulse session 2727: Continuous delivery -accelerated with DevOps
IBM Pulse session 2727: Continuous delivery -accelerated with DevOpsIBM Pulse session 2727: Continuous delivery -accelerated with DevOps
IBM Pulse session 2727: Continuous delivery -accelerated with DevOps
Sanjeev Sharma
 

La actualidad más candente (20)

Application Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and SucceedApplication Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and Succeed
 
Application Performance Management 9.30 HPE whats new | 360 View
Application Performance Management 9.30 HPE whats new | 360 ViewApplication Performance Management 9.30 HPE whats new | 360 View
Application Performance Management 9.30 HPE whats new | 360 View
 
Dependency Health: Removing the Barriers to Keeping Projects in Shape
Dependency Health: Removing the Barriers to Keeping Projects in ShapeDependency Health: Removing the Barriers to Keeping Projects in Shape
Dependency Health: Removing the Barriers to Keeping Projects in Shape
 
Hewlett Packard Entreprise | Stormrunner load | Game Changer
Hewlett Packard Entreprise | Stormrunner load | Game ChangerHewlett Packard Entreprise | Stormrunner load | Game Changer
Hewlett Packard Entreprise | Stormrunner load | Game Changer
 
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYCDraftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
 
The Evolution of Application Release Automation
The Evolution of Application Release AutomationThe Evolution of Application Release Automation
The Evolution of Application Release Automation
 
Disruptive Technology Trends - Cloud, Mobile, IoT and Beyond
Disruptive Technology Trends - Cloud, Mobile, IoT and BeyondDisruptive Technology Trends - Cloud, Mobile, IoT and Beyond
Disruptive Technology Trends - Cloud, Mobile, IoT and Beyond
 
Monitoring in the DevOps Era
Monitoring in the DevOps EraMonitoring in the DevOps Era
Monitoring in the DevOps Era
 
Agile DevOps Transformation Strategy
Agile DevOps Transformation StrategyAgile DevOps Transformation Strategy
Agile DevOps Transformation Strategy
 
[Brochure] HPE ALM Octane
[Brochure] HPE ALM Octane[Brochure] HPE ALM Octane
[Brochure] HPE ALM Octane
 
Sample Request for Information (RFI) Document
Sample Request for Information (RFI) DocumentSample Request for Information (RFI) Document
Sample Request for Information (RFI) Document
 
Centralising FM
Centralising FMCentralising FM
Centralising FM
 
Optimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWSOptimize your CI/CD with GitLab and AWS
Optimize your CI/CD with GitLab and AWS
 
DevOps in Cloud OSLC Integration
DevOps in Cloud OSLC IntegrationDevOps in Cloud OSLC Integration
DevOps in Cloud OSLC Integration
 
DOES15 - Rosalind Radcliffe - Test Automation For Mainframe Applications
DOES15 - Rosalind Radcliffe - Test Automation For Mainframe Applications DOES15 - Rosalind Radcliffe - Test Automation For Mainframe Applications
DOES15 - Rosalind Radcliffe - Test Automation For Mainframe Applications
 
Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewDigital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture Overview
 
What is DevOps? What is DevOps CoE?
What is DevOps? What is DevOps CoE? What is DevOps? What is DevOps CoE?
What is DevOps? What is DevOps CoE?
 
How to eat a whale?
How to eat a whale?How to eat a whale?
How to eat a whale?
 
Tools to Slay the Fire Breathing Monoliths in Your Enterprise
Tools to Slay the Fire Breathing Monoliths in Your EnterpriseTools to Slay the Fire Breathing Monoliths in Your Enterprise
Tools to Slay the Fire Breathing Monoliths in Your Enterprise
 
IBM Pulse session 2727: Continuous delivery -accelerated with DevOps
IBM Pulse session 2727: Continuous delivery -accelerated with DevOpsIBM Pulse session 2727: Continuous delivery -accelerated with DevOps
IBM Pulse session 2727: Continuous delivery -accelerated with DevOps
 

Similar a Reactive applications tools of the trade huff po

Ratpack and Grails 3 (and Spring Boot) SpringOne 2GX 2014
Ratpack and Grails 3 (and Spring Boot) SpringOne 2GX 2014Ratpack and Grails 3 (and Spring Boot) SpringOne 2GX 2014
Ratpack and Grails 3 (and Spring Boot) SpringOne 2GX 2014
Lari Hotari
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
Ambassador Labs
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
andreas kuncoro
 

Similar a Reactive applications tools of the trade huff po (20)

Going Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive PlatformGoing Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive Platform
 
Re-Platforming Applications for the Cloud
Re-Platforming Applications for the CloudRe-Platforming Applications for the Cloud
Re-Platforming Applications for the Cloud
 
Ratpack and Grails 3 (and Spring Boot) SpringOne 2GX 2014
Ratpack and Grails 3 (and Spring Boot) SpringOne 2GX 2014Ratpack and Grails 3 (and Spring Boot) SpringOne 2GX 2014
Ratpack and Grails 3 (and Spring Boot) SpringOne 2GX 2014
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
 
Application Darwinism - Why Most Enterprise Apps Will Evolve to the Cloud
Application Darwinism - Why Most Enterprise Apps Will Evolve to the CloudApplication Darwinism - Why Most Enterprise Apps Will Evolve to the Cloud
Application Darwinism - Why Most Enterprise Apps Will Evolve to the Cloud
 
Building Reactive applications with Akka
Building Reactive applications with AkkaBuilding Reactive applications with Akka
Building Reactive applications with Akka
 
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
VMworld 2013: Best Practices for Application Lifecycle Management with vCloud...
 
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
 
Lecture_1_Introduction (Web Engineering).ppt
Lecture_1_Introduction (Web Engineering).pptLecture_1_Introduction (Web Engineering).ppt
Lecture_1_Introduction (Web Engineering).ppt
 
Lecture_1_Introduction (Web Engineering).pdf
Lecture_1_Introduction (Web Engineering).pdfLecture_1_Introduction (Web Engineering).pdf
Lecture_1_Introduction (Web Engineering).pdf
 
Making Your Apps Cloudy - Migrating to Microservices
Making Your Apps Cloudy - Migrating to MicroservicesMaking Your Apps Cloudy - Migrating to Microservices
Making Your Apps Cloudy - Migrating to Microservices
 
Forecast 2014: Cloud-Aware Applications
Forecast 2014: Cloud-Aware Applications Forecast 2014: Cloud-Aware Applications
Forecast 2014: Cloud-Aware Applications
 
Embracing Containers and Microservices for Future Proof Application Moderniza...
Embracing Containers and Microservices for Future Proof Application Moderniza...Embracing Containers and Microservices for Future Proof Application Moderniza...
Embracing Containers and Microservices for Future Proof Application Moderniza...
 
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
NUS-ISS Learning Day 2018- Designing software to make the most of cloud platf...
 
Red Hat Container Strategy
Red Hat Container StrategyRed Hat Container Strategy
Red Hat Container Strategy
 
Automation, Audits, and Apps Tour
Automation, Audits, and Apps TourAutomation, Audits, and Apps Tour
Automation, Audits, and Apps Tour
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker
 

Más de shinolajla

20150411 mutability matrix of pain scala
20150411 mutability matrix of pain scala20150411 mutability matrix of pain scala
20150411 mutability matrix of pain scala
shinolajla
 
20140228 fp and_performance
20140228 fp and_performance20140228 fp and_performance
20140228 fp and_performance
shinolajla
 
Effective akka scalaio
Effective akka scalaioEffective akka scalaio
Effective akka scalaio
shinolajla
 
Effective actors japanesesub
Effective actors japanesesubEffective actors japanesesub
Effective actors japanesesub
shinolajla
 
Taxonomy of Scala
Taxonomy of ScalaTaxonomy of Scala
Taxonomy of Scala
shinolajla
 

Más de shinolajla (18)

20180416 reactive is_a_product_rs
20180416 reactive is_a_product_rs20180416 reactive is_a_product_rs
20180416 reactive is_a_product_rs
 
20180416 reactive is_a_product
20180416 reactive is_a_product20180416 reactive is_a_product
20180416 reactive is_a_product
 
20161027 scala io_keynote
20161027 scala io_keynote20161027 scala io_keynote
20161027 scala io_keynote
 
20160609 nike techtalks reactive applications tools of the trade
20160609 nike techtalks reactive applications   tools of the trade20160609 nike techtalks reactive applications   tools of the trade
20160609 nike techtalks reactive applications tools of the trade
 
20160524 ibm fast data meetup
20160524 ibm fast data meetup20160524 ibm fast data meetup
20160524 ibm fast data meetup
 
20160520 The Future of Services
20160520 The Future of Services20160520 The Future of Services
20160520 The Future of Services
 
20160520 what youneedtoknowaboutlambdas
20160520 what youneedtoknowaboutlambdas20160520 what youneedtoknowaboutlambdas
20160520 what youneedtoknowaboutlambdas
 
20160317 lagom sf scala
20160317 lagom sf scala20160317 lagom sf scala
20160317 lagom sf scala
 
Effective Akka v2
Effective Akka v2Effective Akka v2
Effective Akka v2
 
20150411 mutability matrix of pain scala
20150411 mutability matrix of pain scala20150411 mutability matrix of pain scala
20150411 mutability matrix of pain scala
 
20140228 fp and_performance
20140228 fp and_performance20140228 fp and_performance
20140228 fp and_performance
 
Effective akka scalaio
Effective akka scalaioEffective akka scalaio
Effective akka scalaio
 
Cpu Caches
Cpu CachesCpu Caches
Cpu Caches
 
Real world akka recepies v3
Real world akka recepies v3Real world akka recepies v3
Real world akka recepies v3
 
Effective actors japanesesub
Effective actors japanesesubEffective actors japanesesub
Effective actors japanesesub
 
Effective Actors
Effective ActorsEffective Actors
Effective Actors
 
Taxonomy of Scala
Taxonomy of ScalaTaxonomy of Scala
Taxonomy of Scala
 
CPU Caches
CPU CachesCPU Caches
CPU Caches
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
[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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Reactive applications tools of the trade huff po

  • 1.
  • 2. This is an era of profound change.
  • 3. Implications are massive, change is unavoidable Reactive Applications 3 Users are demanding richer and more personalized experiences. Yet, at the same time, expecting blazing fast load time. Users Mobile and HTML5; Data and compute clouds; scaling on demand. Modern application technologies are fueling the always-on, real-time user expectation. Applications Businesses are being pushed to react to these changing user expectations… ...and embrace modern application requirements. Businesses
  • 4. As a matter of necessity, businesses are going Reactive.
  • 5. Reactive applications share four traits Reactive Applications 5
  • 6. Reactive applications react to changes in the world around them.
  • 7. Event-Driven • Loosely coupled architecture, easier to extend, maintain, evolve • Asynchronous and non-blocking • Concurrent by design, immutable state • Lower latency and higher throughput Reactive Applications 7 “Clearly, the goal is to do these operations concurrently and non-blocking, so that entire blocks of seats or sections are not locked. We’re able to find and allocate seats under load in less than 20ms without trying very hard to achieve it.” Andrew Headrick, Platform Architect, Ticketfly
  • 8. Reactive applications scale up and down to meet demand.
  • 9. Scalable • Scalability and elasticity to embrace the Cloud • Leverage all cores via asynchronous programming • Clustered servers support joining and leaving of nodes • More cost-efficient utilization of hardware Reactive Applications 9 “Our traffic can increase by as much as 100x for 15 minutes each day. Until a couple of years ago, noon was a stressful time. Nowadays, it’s usually a non-event.” Eric Bowman, VP Architecture, Gilt Groupe
  • 11. Reactive applications are architected to handle failure at all levels.
  • 12. Resilient • Failure is embraced as a natural state in the app lifecycle • Resilience is a first-class construct • Failure is detected, isolated, and managed • Applications self heal Reactive Applications 12 “The Typesafe Reactive Platform helps us maintain a very aggressive development and deployment cycle, all in a fail-forward manner. It’s now the default choice for developing all new services.” Peter Hausel, VP Engineering, Gawker Media
  • 14. Reactive applications enrich the user experience with low latency response.
  • 15. Responsive • Real-time, engaging, rich and collaborative • Create an open and ongoing dialog with users • More efficient workflow; inspires a feeling of connectedness • Fully Reactive enabling push instead of pull Reactive Applications 15 “The move to these technologies is already paying off. Response times are down for processor intensive code–such as image and PDF generation–by around 75%.” Brian Pugh, VP of Engineering, Lucid Software
  • 16. Reference Architecture Reactive Applications 16 Play Server Play Server Play Server Play Server Web Tier Work Tier Akka Master Router Akka Router Standb y Akka Worker Akka Worker Akka Worker Akka Worker Akka Worker (Distributed Workers in Akka with Java/Scala Activator template)
  • 17. Cost of Not Being Reactive • Cost to your wallet and the environment • No ability to recover from failure • No ability to be responsive to our users Reactive Applications 17
  • 18. Functional Programming is Key • We want to be asynchronous and non-blocking • We need to ensure that our data is protected without locks • Functional programming is critical to meeting these needs • Declarative • Immutable • Referentially transparent • Pure functions that only have inputs and outputs Reactive Applications 18
  • 19. Tools of the Trade Reactive Applications 19
  • 20. Tools of the Trade: Event Loops • Leverage green threads to provide asynchronous semantics • The core concept of Node.js and Vert.x • Powerful abstraction for performance and potentially scalability • Limited with respect to resilience Reactive Applications 20
  • 22. Tools of the Trade: CSP • Communicating Sequential Processes • Decouples the sender and receiver by leveraging a "channel" • The underlying principle behind Go's Goroutines and Clojure's core.async • Theoretically able to statically verify a deadlock will occur at compilation time, though no popular implementation does currently does this • No inherent ability to send messages in a distributed environment • No supervision for fault tolerance Reactive Applications 22
  • 24. Futures • Allow you to define behavior that will be executed on another thread at some time • Responses can be handled with callbacks or higher-order functions (map, flatMap), and can be composed • Not supervised, but do allow explicit fault tolerance via failure callback definition Reactive Applications 24
  • 26. Tools of the Trade: CPS and Dataflow • Take asynchronous operations and compose them into steps of execution, like a pipeline • Application logic looks synchronous and clean, compiled into code that executes asynchronously • Maintains order of execution • Do not scale across machines • Can be supervised (Akka Dataflow), but failure handling can depend on tool you choose Reactive Applications 26
  • 27. Tools of the Trade: Reactive Extensions (RX) • Combine the Iterator and Observer patterns into the Observable • Excellent mechanism for handling streams of data • Fault tolerance depends on implementation • Reactive Streams (http://www.reactive-streams.org/) introduced the requirement for handling backpressure in overwhelmed systems, as well as a test kit to prove compliance. Reactive Applications 27
  • 29. Tools of the Trade: Actors • Individual entities that can only communicate by passing messages • Excellent for isolating mutable state and protecting it without locks • Location transparency • Supervision • Well-suited for creating state machines • Several implementations, most popular are Erlang and Akka Reactive Applications 29
  • 31. Reactive is being adopted across a wide range of industries.
  • 32. Reactive Applications 32 Finance Internet/Social Media Mfg/Hardware Government Retail
  • 33. Typesafe delivers the world’s leading Reactive platform on the JVM.
  • 34. Typesafe is Reactive Throughout Our Platform JVM Based Developer Tools and Runtime • Activator • Ensures Adopters are Successful from the Start • Plugin Architecture enables Third Party Integrations • Play Framework for Web Applications • Ideal for Responsive Web Apps • Rest based Services and Web Socket Apps • Supports Java and Scala • Akka Runtime • Highly Scalable Runtime for Java and Scala Applications • Implementation of the Actor Model • Reactive Streams for integration with Spring/RxJava/Vert.x/etc • Scala Programming Language • Scalable and Performant • Functional programming supports reusability Reactive Applications 34
  • 35. How do I get started? Reactive Applications 35
  • 36. Typesafe is dedicated to delivering developer success.
  • 37. Receive ongoing high value – Typesafe Together • Developer and Production Support • Proactive tips and techniques • Older version maintenance • Security Vulnerability alerts • Backstage Pass • Ask the Expert Webinars • Early access to online courses • Other customer only content • Community Spotlight • Posting of job openings on community page • Projects highlighted on Typesafe content sites • Speaking opportunities at meet ups and conferences Reactive Applications 37 “Scala was new to the group, so having commercial support and training was a big benefit. When we wanted some help with Slick, a Typesafe consultant came out for four hours. We got ten people in the room and got everyone up to speed. That’s the kind of responsiveness and engagement that we really like.” Adam Denenberg, VP Engineering, Huffington Post
  • 38. ©Typesafe 2014 – All Rights Reserved

Notas del editor

  1. Resilience is to a large extent ignored by the industry If not completely ignored then bolted on afterwards In a Reactive Application resilience is not an afterthought But part of the design, and a first class construct in the programming model Failure will happen – even if you like it or not See it as a natural state in the applications lifecycle and not only react to it but manage it Delivers an application that that can self-heal and Avoid cascading failures
  2. Real-time, engaging, rich and collaborative Businesses can create an open and ongoing dialog with customers by welcoming them through responsive experiences Makes for more efficient workflow and inspires a feeling of connectedness that equips them to solve problems and accomplish tasks. Technical Overview Push instead of Pull; WebSockets, Server-Sent Events Streaming; Rx/FRP, Iteratees Reactive JavaScript libraries; Knockout.js, Reactive.js, Meteor