PuppetConf 2017: The Changing Role of Operations- Michael Stahnke, PuppetPuppet
The expectations and responsibilities for a modern operations team are high. Today, ops is expected to build and design delivery pipelines, have continuous statistic collection as a part of their monitoring services, and complement the development process with continuous integration and delivery practices, all while still maintaining critical back-office applications that most wouldn’t wish upon their enemies. How did it get that way? What separates the operations teams that lead from the ones who react? To dig in, we’ll consider a reactive team mired in fire-fighting and incapable of making headway, then watch as change that betters the team’s output and perception throughout the organization is slowly introduced. We’ll cover root-cause analysis efforts, bringing pain forward, experimentation, shifting left on quality, and selling automation and DevOps practices to management. This talk will not focus on tools, but rather procedural and cultural improvements that highlight the journey operations has undergone, and how we can prepare for the future.
A 20-min session I did at vodQA 2011 event in Pune, India. It shares info about how our team used parallelization to achieve a reduction of CI build time (automated functional tests) from almost 1 hour to 5 mins.
Managing state in modern React web applicationsJon Preece
This is the presentation I gave to my local JavaScript North West meetup group in Manchester, UK on 16th October 2018. The presentation demostrated local state vs Context API vs Redux, and when was appropriate to use each tool and some best practices around all three.
PuppetConf 2017: The Changing Role of Operations- Michael Stahnke, PuppetPuppet
The expectations and responsibilities for a modern operations team are high. Today, ops is expected to build and design delivery pipelines, have continuous statistic collection as a part of their monitoring services, and complement the development process with continuous integration and delivery practices, all while still maintaining critical back-office applications that most wouldn’t wish upon their enemies. How did it get that way? What separates the operations teams that lead from the ones who react? To dig in, we’ll consider a reactive team mired in fire-fighting and incapable of making headway, then watch as change that betters the team’s output and perception throughout the organization is slowly introduced. We’ll cover root-cause analysis efforts, bringing pain forward, experimentation, shifting left on quality, and selling automation and DevOps practices to management. This talk will not focus on tools, but rather procedural and cultural improvements that highlight the journey operations has undergone, and how we can prepare for the future.
A 20-min session I did at vodQA 2011 event in Pune, India. It shares info about how our team used parallelization to achieve a reduction of CI build time (automated functional tests) from almost 1 hour to 5 mins.
Managing state in modern React web applicationsJon Preece
This is the presentation I gave to my local JavaScript North West meetup group in Manchester, UK on 16th October 2018. The presentation demostrated local state vs Context API vs Redux, and when was appropriate to use each tool and some best practices around all three.
Reliability Patterns for Distributed ApplicationsAndrew Hamilton
Description of different practices to help improve the reliability of a distributed applications. This presentation starts by establishing a good base of practices and then build upon those practices to create a robust and reliable system.
This is from an invited talk I gave at the Pittsburgh Perl Workshop a few years back. It's not often that I get a chance to talk to developers, so I thought I'd take advantage of it and yell at them a bit ;-)
Reactiveness All The Way - SW Architecture 2015 ConferenceTamir Dresher
My slides from SW Architecture 2015 Conference -
http://www.iltam.org/sw-arch2015/arch2015_page
Modern applications must handle a constant barrage of events and data sources. From a single sensor to a network of nodes and users pumping data into your system. Your system needs to be responsive and give a response in a timely manner, it should be resilient and recover when something bad happens and it should know how to work with increasing usage – your system needs to be reactive. In this session we will cover the tools and practices that helps us achieve Reactive Architectures. we will discuss the Reactive Manifesto, Actor Model, Reactive Streams and of course the powerful Reactive Extensions (Rx) library.
Elm - never get a runtime error anymore. Almost.Anton Astashov
Elm, a transpiled-to-JavaScript language which makes sure you’ll never have a runtime error in your app. Almost. Why it’s cool, what it looks like, it’s pros and (most importantly) cons.
Beyond fault tolerance with actor programming - Fabio Tiriticco - Codemotion ...Codemotion
The Actor model has been around for a while, but only the Reactive revolution is bringing it to trend. Find out how your application can benefit from Actors to achieve Resilience - the ability to spring back into shape from a failure state. Akka is a toolkit that brings Actors to the JVM - think Java or Scala - and that leverages on them to help you build concurrent, distributed and resilient applications.
Beyond Fault Tolerance with Actor ProgrammingFabio Tiriticco
Actor Programming is a software building approach that lets you can go beyond fault tolerance and achieve Resilience, which is the capacity of a system to self-heal and spring back into a fresh shape. First I'll introduce the difference between Reactive Programming and Reactive Systems, and then we'll go over a couple of implementation examples using Scala and Akka.
The coupled GitHub repository with the code is here: https://github.com/ticofab/ActorDemo
Presentation for a talk given at University of Malta in relation to industry direction of Reactive Programming and its adoption in Java and Spring as of their latest releases.
Our biggest challenges as Front-Enders. We have a number of questions to solve, we can evolve if we face them as our responsibility. This deck includes: comparisons of API models; framework's groups; programming concepts/paradigms.
Links:
Portuguese version: http://www.slideshare.net/Hugeinc/desenvolvimento-clientside-2016
Zhou-yi comparison tool: http://zhou-yi.herokuapp.com
Lunar, framework abstraction: https://github.com/hugeinc/lunar
You are already the Duke of DevOps: you have a master in CI/CD, some feature teams including ops skills, your TTM rocks ! But you have some difficulties to scale it. You have some quality issues, Qos at risk. You are quick to adopt practices that: increase flexibility of development and velocity of deployment. An urgent question follows on the heels of these benefits: how much confidence we can have in the complex systems that we put into production? Let’s talk about the next hype of DevOps: SRE, error budget, continuous quality, observability, Chaos Engineering.
RxJava pour Android : présentation lors du GDG Android MontréalSidereo
Reactive extensions are a framework created by Microsoft for .NET at the end of 2009.
It is a «library that allows programmers to write succinct declarative code to orchestrate and coordinate asynchronous and event-based programs »
The way you write code with this library might be referred to as functional reactive programming, we’ll talk more about this during the presentation.
It is now available for Java and Android. The specifics for Android are helpers for thread and UI stuff.
Jake Wharton is a huge contributor for the Android version
Updated: Should you be using an Event Driven ArchitectureJeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
Reliability Patterns for Distributed ApplicationsAndrew Hamilton
Description of different practices to help improve the reliability of a distributed applications. This presentation starts by establishing a good base of practices and then build upon those practices to create a robust and reliable system.
This is from an invited talk I gave at the Pittsburgh Perl Workshop a few years back. It's not often that I get a chance to talk to developers, so I thought I'd take advantage of it and yell at them a bit ;-)
Reactiveness All The Way - SW Architecture 2015 ConferenceTamir Dresher
My slides from SW Architecture 2015 Conference -
http://www.iltam.org/sw-arch2015/arch2015_page
Modern applications must handle a constant barrage of events and data sources. From a single sensor to a network of nodes and users pumping data into your system. Your system needs to be responsive and give a response in a timely manner, it should be resilient and recover when something bad happens and it should know how to work with increasing usage – your system needs to be reactive. In this session we will cover the tools and practices that helps us achieve Reactive Architectures. we will discuss the Reactive Manifesto, Actor Model, Reactive Streams and of course the powerful Reactive Extensions (Rx) library.
Elm - never get a runtime error anymore. Almost.Anton Astashov
Elm, a transpiled-to-JavaScript language which makes sure you’ll never have a runtime error in your app. Almost. Why it’s cool, what it looks like, it’s pros and (most importantly) cons.
Beyond fault tolerance with actor programming - Fabio Tiriticco - Codemotion ...Codemotion
The Actor model has been around for a while, but only the Reactive revolution is bringing it to trend. Find out how your application can benefit from Actors to achieve Resilience - the ability to spring back into shape from a failure state. Akka is a toolkit that brings Actors to the JVM - think Java or Scala - and that leverages on them to help you build concurrent, distributed and resilient applications.
Beyond Fault Tolerance with Actor ProgrammingFabio Tiriticco
Actor Programming is a software building approach that lets you can go beyond fault tolerance and achieve Resilience, which is the capacity of a system to self-heal and spring back into a fresh shape. First I'll introduce the difference between Reactive Programming and Reactive Systems, and then we'll go over a couple of implementation examples using Scala and Akka.
The coupled GitHub repository with the code is here: https://github.com/ticofab/ActorDemo
Presentation for a talk given at University of Malta in relation to industry direction of Reactive Programming and its adoption in Java and Spring as of their latest releases.
Our biggest challenges as Front-Enders. We have a number of questions to solve, we can evolve if we face them as our responsibility. This deck includes: comparisons of API models; framework's groups; programming concepts/paradigms.
Links:
Portuguese version: http://www.slideshare.net/Hugeinc/desenvolvimento-clientside-2016
Zhou-yi comparison tool: http://zhou-yi.herokuapp.com
Lunar, framework abstraction: https://github.com/hugeinc/lunar
You are already the Duke of DevOps: you have a master in CI/CD, some feature teams including ops skills, your TTM rocks ! But you have some difficulties to scale it. You have some quality issues, Qos at risk. You are quick to adopt practices that: increase flexibility of development and velocity of deployment. An urgent question follows on the heels of these benefits: how much confidence we can have in the complex systems that we put into production? Let’s talk about the next hype of DevOps: SRE, error budget, continuous quality, observability, Chaos Engineering.
RxJava pour Android : présentation lors du GDG Android MontréalSidereo
Reactive extensions are a framework created by Microsoft for .NET at the end of 2009.
It is a «library that allows programmers to write succinct declarative code to orchestrate and coordinate asynchronous and event-based programs »
The way you write code with this library might be referred to as functional reactive programming, we’ll talk more about this during the presentation.
It is now available for Java and Android. The specifics for Android are helpers for thread and UI stuff.
Jake Wharton is a huge contributor for the Android version
Updated: Should you be using an Event Driven ArchitectureJeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
As the scale of compute usage increases automation becomes a requirement. However, automation is traditionally seen as a replacement of humans. So, how do you build automation with the humans in mind? This talk will cover Habitat, an open source project for application automation. We will cover the design decisions behind Habitat that enable humans to be more effective at their jobs, while removing them from the complexity of managing systems at scale.
https://rakutentechnologyconference2016.sched.org/event/8ChB/automation-for-the-humans
Rakuten Technology Conference 2016
http://tech.rakuten.co.jp/
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay PlatonovSencha
Undo and redo is a very common but not trivial feature, requested in most types of modern web applications. An application may define complex data processing rules involving data from different stores, which is tricky to handle when undoing an operation. With the Robo tool, we'll show you how to accurately revert data to any previous state with a simple undo() call.
Eric Proegler Early Performance Testing from CAST2014Eric Proegler
Development and deployment contexts have changed considerably over the last decade. The discipline of performance testing has had difficulty keeping up with modern testing principles and software development and deployment processes.
Most people still see performance testing as a single experiment, run against a completely assembled, code-frozen, production-resourced system, with the "accuracy" of simulation and environment considered critical to the value of the data the test provides.
But what can we do to provide actionable and timely information about performance and reliability when the software is not complete, when the system is not yet assembled, or when the software will be deployed in more than one environment?
Eric deconstructs “realism” in performance simulation, talks about performance testing more cheaply to test more often, and suggest strategies and techniques to get there. He will share findings from WOPR22, where performance testers from around the world came together in May 2014 to discuss this theme in a peer workshop.
Slides from my last presentation at the Cape Town Meteor meetup, on optimising the UI, specifically for Hybrid apps and for Meteor JS hybrid apps.
The main thrust is really more about design patterns, and carefully controlling data management in your mobile app, with great examples of these patterns out in the real world.
see the mobile patterns video here : https://www.youtube.com/watch?v=e6WWX4TF3UI
Bootiful Microservices in a Legacy Environment: Lessons LearnedVMware Tanzu
SpringOne Platform 2016
Speaker: David Julia; Associate Director, Pivotal
Building Microservices in a green field environment is amazing! But the realities of some of our largest and oldest institutions is that there is a lot of value in existing legacy systems. When you're building on top of legacy systems, there are many challenges that green field development does not even have to consider. Join me for a 30 minute session in which we look at some patterns that we have employed over the last 2 years of building Spring Boot based microservices in the context of legacy systems. I'll speak to tried and true strategies for creating "strangler applications", strategies for moving away from the database as an integration point, and how to start carving off bounded contexts for your new microservices. I'll also speak to a handful of pit-falls to be avoided as you make the journey to a bootiful microservice landscape.
Don't Wait! Develop responsive applications with Java EE7 insteadErin Schnabel
A revision to a previous session: we explore how the async mechanisms in Java EE7 help you be more responsive in the backend. Includes an overview of how EE7 technologies enable RxJava to be used in a container-friendly way.
Similar to Reactive Programming or Reactive Systems? (spoiler: both) (20)
Slides for the talk I gave at the 2020 conference "Sofware Circus: Down The Rabbit Hole" . Attendees are given an overview of Deep Learning and a unique dataset to start experimenting. Code and images are available here: https://github.com/ticofab/deep-learning-with-scala
Slides of Maxim Burgerhout from RedHat ( @MaximBurgerhout ). This presentation was given at the Reactive Amsterdam meetup: https://www.meetup.com/Reactive-Amsterdam , in collaboration with GOTO Nights Amsterdam. Recording of the talk is here: https://www.youtube.com/watch?v=X2NFGHQzQok
Ten Frustrations From The Community Trenches (And How To Deal With Them)Fabio Tiriticco
As community managers dealing with people, we are all bound to deal with frustrations at some point. This talk goes over a few common ones and reveals a few tips to deal with them.
We all need friends and Akka just found KubernetesFabio Tiriticco
We all feel alone sometimes. Akka got along well with the VM crew ever since it was born, but new friends and fresh ideas are always necessary. Which is why lately Akka loves spending time with Kubernetes! Maybe the reason why they like each other so much is their sharing of core values such as transparent scalability and resilience.
How do these two technologies compare from a Reactive standpoint? Does one supersede the other? In fact, their powers can be combined to design distributed systems all the way from application code to cloud instance.
Cloud native akka and kubernetes holy grail to elasticityFabio Tiriticco
Akka is the most mature choice to implement the traits of the Reactive Manifesto, thanks to the Actor model. But we need to rely on some external infrastructure to automatically scale up or down our services. We found Docker & Kubernetes to be a perfect match for clustered Akka applications.
My personal highlights from the Reactive Summit 2017. I loved the conference from the beginning till the end and I shared some of that with my Reactive Amsterdam meetup. All content belongs to the respective speakers.
** Video of this talk is here: https://youtu.be/MQGXrrhGUTw **
The first talk of the Meetup on the 11th of April 2017, hosted by weeronline.nl in their Amsterdam offices.
Streams are everywhere! Akka Streams help us model streaming processes using a very descriptive DSL and optimising resource usage.
The word "Reactive" can be confusing. As the founder of the Reactive Amsterdam meetup, I can tell there are two main topics here: Functional Reactive Programming (here with reference to Android) and "Reactive" in the sense of the Reactive Manifesto.
For most of us, Reactive Android means using RxJava. In this presentation, I try to borrow a few ideas from the backend world and enrich the concept of Reactive in Android.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Reactive Programming or Reactive Systems? (spoiler: both)
1. HOW REACTIVE CAN YOU BE?
DomCode 26th September 2017
Reactive Programming or Reactive Systems?
(spoiler: both)
2. @ticofabA little info about myself - Fabio Tiriticco
Tech Lead /
Software Architect
@ticofab
3. @ticofab
1. Reactive Programming
2. Reactive Systems
3. Building blocks of Reactive Systems: Actor programming
4. Reactive Programming vs Reactive Systems
Outline
Goal: no more confusion about “reactive”
12. @ticofabReactive Programming & its benefits
1. Stream-like processing
2. Easy management of back pressure
3. Conciseness
4. Simplification of parallel / threaded work
“A paradigm where the logic is driven forward
by the availability of new information”
“As soon as there is new input, react to it”
13. @ticofab
Observable.from(myCats)
Reactive Programming example (RxJava on Android)
List<Cat> myCats;
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.filter(cat -> cat.isWhite())
.map(cat -> cat.fetchPicture())
.map(picture -> Filter.applyFilter(picture))
.subscribe(filteredPicture -> display(filteredPicture));
.onBackpressureBuffer(16)
1. Stream-like processing
2. Conciseness
3. Simplification of threaded work
4. Easy management of back pressure
… …
15. @ticofabGoal
“Reactive Systems strive to increase productivity and make
sure that development and maintenance of components
reduce the accidental complexity to a minimum.”
the ability to react quickly
and appropriately to change
agility
əˈdʒɪlɪti/
Development level
increase productivity
facilitate development
facilitate maintenance
reduce accidental complexity
Company as whole
16. @ticofabThe Reactive Principles
Define a way of thinking about system architectures in a
modern and distributed environment. In a Reactive System,
the interaction between the parts makes the difference.
17. @ticofabThe Reactive Manifesto, 2013
A reactive computer system must Trait
React to its users Responsive
React to failure and stay available Resilient
React to varying load conditions Elastic
Its components must react to inputs Message-driven
18. @ticofabReactive System traits (the Reactive Manifesto)
J. Boner, R. Kuhn, D. Farley, M. Thompson - The Reactive Manifesto
19. @ticofabFrom Principles to implementation
Reactive
Principles
Reactive
Patterns
Reactive
Tools
“Akka is a toolkit for building highly concurrent,
distributed, and resilient message-driven applications”
22. @ticofabSimple Component Pattern
“One component should do only one thing but do it in
full. The aim is to maximise cohesion and minimise
coupling between components.”
23. @ticofab
Actor 1
Actor 3
Actor 2
• contains state &
behaviour logic
Actor model
Supervisor
Simple Component Pattern
• has a mailbox to
receive and send
messages
• has a supervisor
myActor3.getCounter()
2
2
counter value?
24. @ticofabThe benefits of Asynchronous Messaging
• Separation between components
• Domain mapping closer to reality
• Error containment - avoid chain failures
Actor 1
Actor 3
Actor 2
Supervisor
2
2
counter value?
26. @ticofabLet it Crash Pattern
"Prefer a full component restart to
complex internal failure handling".
• failure conditions WILL occur
• they might be rare and hard to reproduce
• easier to start clean than to try to recover
Embrace failure by design!
28. @ticofab
Actor 1
Actor 2
Supervisor
HorribleException
X
Fix or
Restart
(doing something else…)
Let it Crash Pattern
• The two actors work independently,
which is great for concurrency
• The user of a service does not deal
with the failures in the service
• The service itself is simpler, without
try / catch blocks
29. @ticofabOld school error handling
ArrayList<Result> results;
try {
results = myDatabase.query(...)
} catch(Exception e) {
e.printStackTrace();
}
getResults(params, function(err,result) {
// did an error occur?
if ( err ) {
// handle the error safely
console.log('4/0=err', err)
} else {
// no error occured, go on
console.log('4/0='+result)
}
})
34. @ticofabReactive Programming vs Reactive Systems
What is Good for Applicability Productive for
Reactive
Programming
Implementation
technique
Asynchronous
dataflow
management
Single node or
service
Developers
Reactive Systems
Set of design
principles
Orchestration of
complex systems
The whole system
(from single node to
the total sum)
Architects
41. @ticofabQuiz
Can React.js be used in combination with Reactive Programming?
A. Yes
B. No
C. Maybe
RxJS, Bacon.js etc.
42. @ticofabQuiz
Why did Facebook chose the name “React.js” ?
A. They hadn’t seen my talk
B. All others 5-letter names were taken
C. Because views are re-rendered as data changes without having
to imperatively make changes to the DOM.
43. @ticofabQuiz
Do I hate Facebook for choosing such name?
A. Yes
B. Yes
C. YES
All answers are correct.