SlideShare a Scribd company logo
Reactive applications   tools of the trade huff po
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

More Related Content

PPTX
Top Devops bottlenecks, constraints and best practices
PPT
Spira plan overview presentation
PPTX
HPE ALM Octane | DevOps | Agile
PDF
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
PDF
DevOps 101
PPTX
Introduction to Modern Software Architecture
PDF
Application Transformation Workshop
PDF
Migrating Your Apps to the Cloud: How to do it and What to Avoid
Top Devops bottlenecks, constraints and best practices
Spira plan overview presentation
HPE ALM Octane | DevOps | Agile
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
DevOps 101
Introduction to Modern Software Architecture
Application Transformation Workshop
Migrating Your Apps to the Cloud: How to do it and What to Avoid

What's hot (20)

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

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

PPTX
Going Reactive in Java with Typesafe Reactive Platform
PDF
Reactive applications Linux Day 2013
PPTX
Building Reactive Fast Data & the Data Lake with Akka, Kafka, Spark
PDF
Building Reactive applications with Akka
PDF
A Journey to Reactive Function Programming
PPTX
Building Reactive Apps
PDF
Reactive applications
PDF
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems (Soft-Sha...
PDF
What is Reactive programming?
PPTX
20160609 nike techtalks reactive applications tools of the trade
PPTX
Reactive Fast Data & the Data Lake with Akka, Kafka, Spark
PPTX
Why Play Framework is fast
PPT
Reactive java programming for the impatient
PPTX
Reactive for the Impatient - Mary Grygleski
ODP
Reactive programming with scala and akka
PDF
Reactive Architecture
PDF
Reactive: Programming -> Systems -> Architecture
PDF
Reactive Applications
PDF
Moving towards Reactive Programming
PPT
Reactive programming with examples
Going Reactive in Java with Typesafe Reactive Platform
Reactive applications Linux Day 2013
Building Reactive Fast Data & the Data Lake with Akka, Kafka, Spark
Building Reactive applications with Akka
A Journey to Reactive Function Programming
Building Reactive Apps
Reactive applications
Go Reactive: Event-Driven, Scalable, Resilient & Responsive Systems (Soft-Sha...
What is Reactive programming?
20160609 nike techtalks reactive applications tools of the trade
Reactive Fast Data & the Data Lake with Akka, Kafka, Spark
Why Play Framework is fast
Reactive java programming for the impatient
Reactive for the Impatient - Mary Grygleski
Reactive programming with scala and akka
Reactive Architecture
Reactive: Programming -> Systems -> Architecture
Reactive Applications
Moving towards Reactive Programming
Reactive programming with examples
Ad

More from shinolajla (17)

PPTX
20180416 reactive is_a_product_rs
PDF
20180416 reactive is_a_product
PPTX
20161027 scala io_keynote
PPTX
20160524 ibm fast data meetup
PPTX
20160520 The Future of Services
PDF
20160520 what youneedtoknowaboutlambdas
PDF
20160317 lagom sf scala
PDF
Effective Akka v2
PPTX
20150411 mutability matrix of pain scala
PDF
20140228 fp and_performance
PDF
Effective akka scalaio
PDF
Cpu Caches
PDF
Real world akka recepies v3
PDF
Effective actors japanesesub
PDF
Effective Actors
PPTX
Taxonomy of Scala
PPTX
CPU Caches
20180416 reactive is_a_product_rs
20180416 reactive is_a_product
20161027 scala io_keynote
20160524 ibm fast data meetup
20160520 The Future of Services
20160520 what youneedtoknowaboutlambdas
20160317 lagom sf scala
Effective Akka v2
20150411 mutability matrix of pain scala
20140228 fp and_performance
Effective akka scalaio
Cpu Caches
Real world akka recepies v3
Effective actors japanesesub
Effective Actors
Taxonomy of Scala
CPU Caches

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Understanding_Digital_Forensics_Presentation.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
cuic standard and advanced reporting.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Electronic commerce courselecture one. Pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Digital-Transformation-Roadmap-for-Companies.pptx
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
Understanding_Digital_Forensics_Presentation.pptx
The AUB Centre for AI in Media Proposal.docx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
cuic standard and advanced reporting.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Dropbox Q2 2025 Financial Results & Investor Presentation
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Electronic commerce courselecture one. Pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Spectral efficient network and resource selection model in 5G networks
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

Reactive applications tools of the trade huff po

  • 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

Editor's Notes

  • #13: 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
  • #16: 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