This document discusses bringing reactive programming to enterprise developers. It defines reactive as responding to stimuli without blocking. Reactive programming uses non-blocking I/O and callbacks to build concurrent and distributed systems that are responsive, message-driven, and resilient. The document advocates using reactive techniques with messaging systems like Kafka to build distributed applications and services that can handle failures and elastic workloads. It presents the Quarkus framework as unifying imperative and reactive programming for Java developers.
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
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
Event driven development in PHP applications are becoming more prevalent. This presentation goes over the origins of the concept from the Observer pattern, details the benefits and drawbacks, and discusses real world application of the pattern.
Agile User Studies: Affordable, Iterative, Scalable, Team-Based User Feedback. Most Agile practitioners would agree that regular customer feedback is essential, but many teams struggle to obtain that information. Traditional usability tests seem too abstract, expensive, and time consuming. I will present a methodology that allows any team or practitioner to conduct affordable, iterative, team-based user studies. I will also share the result of applying this methodology at Cengage Learning over two years, multiple Agile teams, and dozens of projects.
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
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
Event driven development in PHP applications are becoming more prevalent. This presentation goes over the origins of the concept from the Observer pattern, details the benefits and drawbacks, and discusses real world application of the pattern.
Agile User Studies: Affordable, Iterative, Scalable, Team-Based User Feedback. Most Agile practitioners would agree that regular customer feedback is essential, but many teams struggle to obtain that information. Traditional usability tests seem too abstract, expensive, and time consuming. I will present a methodology that allows any team or practitioner to conduct affordable, iterative, team-based user studies. I will also share the result of applying this methodology at Cengage Learning over two years, multiple Agile teams, and dozens of projects.
As requested after my session at Agile Coach Camp US in 2015, here's how I sometimes use a mashup of the Stacey Matrix and the Cynefin framework to avoid analysis paralysis.
Rx is a generic abstraction of computation expressed through Observable<Element> interface, which lets you broadcast and subscribe to values and other events from an Observable stream.
In this playlist
https://youtube.com/playlist?list=PLT...
I'll illustrate algorithms and data structures course, and implement the data structures using java programming language.
the playlist language is arabic.
The Topics:
--------------------
1- Arrays
2- Linear and Binary search
3- Linked List
4- Recursion
5- Algorithm analysis
6- Stack
7- Queue
8- Binary search tree
9- Selection sort
10- Insertion sort
11- Bubble sort
12- merge sort
13- Quick sort
14- Graphs
15- Hash table
16- Binary Heaps
Reference : Object-Oriented Data Structures Using Java - Third Edition by NELL DALE, DANEIEL T.JOYCE and CHIP WEIMS
Slides is owned by College of Computing & Information Technology
King Abdulaziz University, So thanks alot for these great materials
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2jtXmQR.
Konrad Malawski explains what the word Stream means, then looks at how its protocol works and how one might use it in the real world showing examples using existing implementations. He also peeks into the future, to see what the next steps for such collaborative protocols and the JDK ecosystem are in general. Filmed at qconsf.com.
Konrad Malawski works at Akka @Lightbend & Reactive Streams Committer, where he participated in the Reactive Streams initiative and implemented its Technology Compatibility Kit. He maintains a number of Scala tools (such as sbt-jmh), and frequently speaks on distributed systems and concurrency topics at conferences. He also holds number of titles, including Java One RockStar 2015.
Why Do Computational Scientists Trust Their Sojpipitone
A very informal talk I gave to Hausi Muller's group at UVic in June 2009.
I have included, without permission, slides from Daniel Hook's excellent presentation at SE-CSE 2009 (http://www.cs.ua.edu/~SECSE09/schedule.htm).
Modeling an ODE: 3 different approaches - Part 1Scilab
In this tutorial we show how to model a physical system described by ODE using Scilab standard programming language. The same model solution is also described in Xcos and Xcos + Modelica in two other tutorials.
How to practically increase the flow efficiency in your team via established lean principles. A quick comparison of Waterfall, Scrum and LeanKanban methods.
The presentation covers concepts such as Tragedy of Commons, Little's Law, SLA, Lead Time, Cycle Time, WIP-limits, Fast feedback loops, Stop Starting & Start Finishing.
Presentation given at EEA (www.eea.europa.eu) as part of a training for our Taskman software (redmine).
FYI readers: SlideShare somewhat messed up the presentation, but it's still quite readable all the way (except slide 44, SlideShare doesn't seem to like the "thinking emoji"). Also, I made sure that the speaker notes gave a lot of insight. I hope this is useful to you!
** SUMMARY OF THE TALK:
Your product (or your client’s product) is kicking butt, and the userbase is ever growing, allowing to hire more engineers to build more experimental features, more interactions, more experiences in your product. Soon, a dreadful problem starts arising: how do you ensure that one team’s work in your crowd of engineers doesn’t unwillingly break or impact another team’s front-end work? How do you scale humans on the front-end while limiting risk?
We’ll briefly look at how that problem is being solved on the back-end in large companies (Google, Apple, Uber, Salesforce) to see what we can learn from it for the front-end, and then we’ll dive in the opportunities that current front-end framework are leveraging. We’ll discuss component-based approaches in particular, since they’re designed as a solution to that problem, and will review the solutions they bring, but also the new challenges, and what future we can expect to them.
Practical Ontology For Enterprise Data ManagementRichard Green
As a methodologist and software engineer, I’ve designed CASE tools that collect and impose organization on meta-data at all levels of detail.
As a enterprise architect, I’ve worked in an environment that uses planning-level data. In a planning context, you need a method for quickly characterizing the problem space at the enterprise level. I’ve stumbled on to a way to do that.
Read about Redux, a state management for any vanilla javascript framework, it works on client, server and native.
complete introduction and also a comparison with its alternative.
last but not least we have a quick review on redux middleware
Applied Domain-Driven Design Blueprints for Jakarta EEJakarta_EE
Domain-Driven Design (DDD) is an architectural approach that strongly focuses on materializing the business domain in enterprise software through disciplined object-oriented analysis. This session demonstrates first-hand how DDD can be elegantly implemented using Jakarta EE via an open source project named Cargo Tracker.
Cargo Tracker maps DDD concepts like entities, value objects, aggregates and repositories to Jakarta EE code examples in a realistic application. We will also see how DDD concepts like the bounded context are invaluable to designing pragmatic microservices.
As requested after my session at Agile Coach Camp US in 2015, here's how I sometimes use a mashup of the Stacey Matrix and the Cynefin framework to avoid analysis paralysis.
Rx is a generic abstraction of computation expressed through Observable<Element> interface, which lets you broadcast and subscribe to values and other events from an Observable stream.
In this playlist
https://youtube.com/playlist?list=PLT...
I'll illustrate algorithms and data structures course, and implement the data structures using java programming language.
the playlist language is arabic.
The Topics:
--------------------
1- Arrays
2- Linear and Binary search
3- Linked List
4- Recursion
5- Algorithm analysis
6- Stack
7- Queue
8- Binary search tree
9- Selection sort
10- Insertion sort
11- Bubble sort
12- merge sort
13- Quick sort
14- Graphs
15- Hash table
16- Binary Heaps
Reference : Object-Oriented Data Structures Using Java - Third Edition by NELL DALE, DANEIEL T.JOYCE and CHIP WEIMS
Slides is owned by College of Computing & Information Technology
King Abdulaziz University, So thanks alot for these great materials
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2jtXmQR.
Konrad Malawski explains what the word Stream means, then looks at how its protocol works and how one might use it in the real world showing examples using existing implementations. He also peeks into the future, to see what the next steps for such collaborative protocols and the JDK ecosystem are in general. Filmed at qconsf.com.
Konrad Malawski works at Akka @Lightbend & Reactive Streams Committer, where he participated in the Reactive Streams initiative and implemented its Technology Compatibility Kit. He maintains a number of Scala tools (such as sbt-jmh), and frequently speaks on distributed systems and concurrency topics at conferences. He also holds number of titles, including Java One RockStar 2015.
Why Do Computational Scientists Trust Their Sojpipitone
A very informal talk I gave to Hausi Muller's group at UVic in June 2009.
I have included, without permission, slides from Daniel Hook's excellent presentation at SE-CSE 2009 (http://www.cs.ua.edu/~SECSE09/schedule.htm).
Modeling an ODE: 3 different approaches - Part 1Scilab
In this tutorial we show how to model a physical system described by ODE using Scilab standard programming language. The same model solution is also described in Xcos and Xcos + Modelica in two other tutorials.
How to practically increase the flow efficiency in your team via established lean principles. A quick comparison of Waterfall, Scrum and LeanKanban methods.
The presentation covers concepts such as Tragedy of Commons, Little's Law, SLA, Lead Time, Cycle Time, WIP-limits, Fast feedback loops, Stop Starting & Start Finishing.
Presentation given at EEA (www.eea.europa.eu) as part of a training for our Taskman software (redmine).
FYI readers: SlideShare somewhat messed up the presentation, but it's still quite readable all the way (except slide 44, SlideShare doesn't seem to like the "thinking emoji"). Also, I made sure that the speaker notes gave a lot of insight. I hope this is useful to you!
** SUMMARY OF THE TALK:
Your product (or your client’s product) is kicking butt, and the userbase is ever growing, allowing to hire more engineers to build more experimental features, more interactions, more experiences in your product. Soon, a dreadful problem starts arising: how do you ensure that one team’s work in your crowd of engineers doesn’t unwillingly break or impact another team’s front-end work? How do you scale humans on the front-end while limiting risk?
We’ll briefly look at how that problem is being solved on the back-end in large companies (Google, Apple, Uber, Salesforce) to see what we can learn from it for the front-end, and then we’ll dive in the opportunities that current front-end framework are leveraging. We’ll discuss component-based approaches in particular, since they’re designed as a solution to that problem, and will review the solutions they bring, but also the new challenges, and what future we can expect to them.
Practical Ontology For Enterprise Data ManagementRichard Green
As a methodologist and software engineer, I’ve designed CASE tools that collect and impose organization on meta-data at all levels of detail.
As a enterprise architect, I’ve worked in an environment that uses planning-level data. In a planning context, you need a method for quickly characterizing the problem space at the enterprise level. I’ve stumbled on to a way to do that.
Read about Redux, a state management for any vanilla javascript framework, it works on client, server and native.
complete introduction and also a comparison with its alternative.
last but not least we have a quick review on redux middleware
Similar to JakartaOne Livestream CN4J: Bringing Reactive to Enterprise Developers (20)
Applied Domain-Driven Design Blueprints for Jakarta EEJakarta_EE
Domain-Driven Design (DDD) is an architectural approach that strongly focuses on materializing the business domain in enterprise software through disciplined object-oriented analysis. This session demonstrates first-hand how DDD can be elegantly implemented using Jakarta EE via an open source project named Cargo Tracker.
Cargo Tracker maps DDD concepts like entities, value objects, aggregates and repositories to Jakarta EE code examples in a realistic application. We will also see how DDD concepts like the bounded context are invaluable to designing pragmatic microservices.
Jakarta EE 9 Milestone Release Party
Presentor: Kevin Sutter, IBM - co-Release lead for Jakarta EE 9, co-Project Lead for Jakarta EE Platform Project, Member of EE4J PMC, Member of Jakarta EE Steering and Spec Committees
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Jakarta_EE
In this presentation we will cover some of those challenges, discuss how one of those standards efforts (Eclipse MicroProfile) has helped move the Java community forward, and give an hint at some changes happening in the Java language and frameworks with the Quarkus project as an example.
Speaker: Mark Little, Red Hat
Jakarta for dummEEs | JakartaOne LivestreamJakarta_EE
Speaker: Kevin Sutter
We have finally made some real progress with Jakarta EE in 2019! Specifications, APIs, TCKs, Maven artifacts, Implementations, Releases, and, yes, even a little bit of required process. If you want to get caught up quickly on all of the activities, this session is for you. We will discuss the potential impact to both implementors as well as application developers as we move away from the JCP-defined javax world to the open-source world of Jakarta EE.
Jakarta EE Meets NoSQL at the Cloud Age | JakartaOne LivestreamJakarta_EE
Speaker: Otavio Santana
Jakarta NoSQL is the first specification of the new era of Java EE now in the Eclipse Foundation home as Jakarta EE. The goal of this specification is to ease integration to Java applications with a standard API that supports more than 30 NoSQL vendors and rising.
Turbocharged Java with Quarkus | JakartaOne LivestreamJakarta_EE
Speaker: Marcus Biel
I will demonstrate how we can create a native executable with Quarkus, and how fast we can scale a large cluster of Quarkus containers in the cloud. Last but not least, I will show you how much fun it is to develop a REST + JPA based application with the help of Quarkus.
Building Interoperable Microservices With Eclipse MicroProfile| JakartaOne Li...Jakarta_EE
peaker: Ivar Grimstad
Eclipse MicroProfile is a collection of community-driven open source specifications that define an enterprise Java microservices platform. This session gives an introduction to Eclipse MicroProfile and the tools available to get started building portable microservices with a minimum of effort. The features of MicroProfile will be in explained in a down-to-earth and easily understandable way.
Jakarta RESTful Web Services: Status Quo and Roadmap | JakartaOne LivestreamJakarta_EE
Speaker: Markus Karg
This talk shares some insight into the current project status and the road ahead of the technology formerly known as JAX-RS. If you maintain existing JAX-RS applications, or write new RESTful Microservices in Java, this is the strategic session you need to attend.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
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
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.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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.
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.
3. reactive | rēˈaktiv |
adjective
showing a response to a stimulus: pupils are reactive to light.
• acting in response to a situation rather than creating or controlling it: a
proactive rather than a reactive approach.
• having a tendency to react chemically: nitrogen dioxide is a highly reactive
gas.
• Physiology showing an immune response to a specific antigen.
...
https://www.oxfordlearnersdictionaries.com/definition/english/reactive
4. reactive | rēˈaktiv |
adjective
showing a response to a stimulus: pupils are reactive to light.
• acting in response to a situation rather than creating or controlling it: a
proactive rather than a reactive approach.
• having a tendency to react chemically: nitrogen dioxide is a highly reactive
gas.
• Physiology showing an immune response to a specific antigen.
...
• Software application reacting to stimuli such as user inputs, messages,
and failures
10. “A distributed system is one in which
the failure of a computer you didn't
even know existed can render your
own computer unusable.”
Leslie Lamport
21. Containers are about sharing and deployment density
Container Host
Threads
costs memory
cost lots of memory
cost CPU cycles
+ quotas = BOOM
The hidden truth of containers
22. Asynchronous & Non-Blocking execution model
Ideal
world
Task A Task B Task C
Real
world
Blocking I/O
Asynchronous
execution
34. Coffee Shop Barista Coffee Shop Barista
HTTP
Dashboard
REACTIVE COFFEE SHOP
https://github.com/cescoffier/quarkus-coffeeshop-demo
Orders, Queue
* Also applies to AMQP and other messaging protocols but we want to be “cool”
*
35. Bridge imperative -> reactive
DROP HTTP, SEND MESSAGES
@Inject @Channel("orders")
Emitter<Order> orders;
@Inject @Channel("queue")
Emitter<Beverage> states;
@POST @Path("/messaging")
public Order messaging(Order order) {
order.setOrderId(getId());
states.send(Beverage.queued(order));
orders.send(order);
return order;
}
Send to the
channel “orders”
36. @Incoming("orders")
@Outgoing("queue")
public Uni<Beverage> process(Order order) {
return Uni.createFrom(() -> {
Beverage coffee = prepare(order);
return coffee;
});
}
Process data
asynchronously*
* Many other options available to produce, process or consume data
Read from “orders”
Write to “queue”
PROCESSING MESSAGES