SlideShare a Scribd company logo
1 of 91
Download to read offline
Reactive All the Way Down
with Ratpack, RxGroovy, React, and
RabbitMQ
Steve Pember
CTO, ThirdChannel
Greach, 2018
@svpember
Reactive All the Way Down
with Ratpack, RxGroovy, Groovy,
rxJava, React, and RabbitMQ
Steve Pember
CTO, ThirdChannel
Greach, 2018
@svpember
@svpember
Agenda
• Reactive ?
@svpember
Agenda
• Reactive ?
• Anatomy of a Reactive Service
@svpember
Agenda
• Reactive ?
• Anatomy of a Reactive Service
• Technology Choices for a Reactive Service
@svpember
Agenda
• Reactive ?
• Anatomy of a Reactive Service
• Technology Choices for a Reactive Service
• Demo
Advantages of Reactive
A Good Kind of Manifesto
–Johnny Appleseed
“Type a quote here.”
@svpember
Reactive Services…
• Are Fast and Efficient
@svpember
Reactive Services…
• Are Fast and Efficient
• Resist and are Resilient to Failure
@svpember
Reactive Services…
• Are Fast and Efficient
• Resist and are Resilient to Failure
• Scale Horizontally to Meet Current Demand
@svpember
Reactive Services…
• Are Fast and Efficient
• Resist and are Resilient to Failure
• Scale Horizontally to Meet Current Demand
• Are Driven by Asynchronous Messages / Events
@svpember
@svpember
@svpember
Advantages of Reactive
• Highly optimized usage of resources -> optimal throughput
You’re not
Netflix.
Probably
@svpember
Advantages of Reactive
• Highly optimized usage of resources -> optimal throughput
• Fast
@svpember
Advantages of Reactive
• Highly optimized usage of resources -> optimal throughput
• Fast
• Reduces Synchronous Communications
@svpember
Advantages of Reactive
• Highly optimized usage of resources -> optimal throughput
• Fast
• Reduces Synchronous Communications
• Increased Error Protection
@svpember
@svpember
@svpember
Advantages of Reactive
• Highly optimized usage of resources -> optimal throughput
• Fast
• Reduces Synchronous Communications
• Increased Error Protection
• “Simpler” testing
@svpember
@svpember
Advantages of Reactive
• Highly optimized usage of resources -> optimal throughput
• Fast
• Reduces Synchronous Communications
• Increased Error Protection
• “Simpler” testing
• Promotes a functional programming style
@svpember
Advantages of Reactive
• Highly optimized usage of resources -> optimal throughput
• Fast
• Reduces Synchronous Communications
• Increased Error Protection
• “Simpler” testing
• Promotes a functional programming style
• Ease of Development
Anatomy of a Reactive Service
@svpember
@svpember
Layers
• Front-End
Don’t Write Imperative JS
@svpember
Layers
• Front-End
• HTTP
@svpember
HTTP
• C10k problem
• Nonblocking I/O
• Many popular web servers support async or reactive handlers
• Ratpack’s been doing it for years now
@svpember
Layers
• Front-End
• HTTP
• Service Layer
@svpember
Service Layer
• Write Async Code!
@svpember
Service Layer
• Write Async Code!
• java.util.concurrent
@svpember
Service Layer
• Write Async Code!
• java.util.concurrent
• GPars!
@svpember
Service Layer
• Write Async Code!
• java.util.concurrent
• GPars!
• Project Reactor
@svpember
Service Layer
• Write Async Code!
• java.util.concurrent
• GPars!
• Project Reactor
• Reactive Streams
@svpember
Service Layer
• Write Async Code!
• java.util.concurrent
• GPars!
• Project Reactor
• Reactive Streams
• Create an internal Message Bus
@svpember
Layers
• Front-End
• HTTP
• Service Layer
• Messaging / Intra-Service comms
@svpember
Messaging
• Non Blocking I/O is vital!
• Need an Asynchronous Message Broker
• Need a dedicated Thread Pool (ExecutorService)
• Message Flow:
@svpember
@svpember
@svpember
Layers
• Front-End
• HTTP
• Service Layer
• Messaging / Intra-Service comms
• Persistance
@svpember
Reactive JDBC Driver is Coming!
Tech Choices at Each Level
We prefer Libraries
Front-End
@svpember
React
• View Library for JS
• Define Components that receive props and maintain state
React favors pushing
properties ‘down’ through
layers of components
@svpember
React
• View Library for JS
• Define Components that receive props and maintain state
• + Encourages reusable components
@svpember
Stateful Components (“Containers”)
• Maintains internal state of Component
• Written as a class, with a variety of internal functions (e.g. click Handlers)
• Not intended for re-use
• May receive external State as props
• Passes Props to Child Components
• Simple Render functions that may concern layout
• Children can be both Containers and Presentational
• Refrain from ‘raw’ HTML (JSX), CSS, render() should use Presentational Components
• Little-To-No Business Logic
@svpember
Stateless Components (“Presentational”)
• No State. Only receives Props.
• Written as a single function (representing the render())
• Ideal if Presentational components are reusable
• Potentially complex render functions. note: calling render() only affects
DOM if props have changed for a component
• No Business Logic
@svpember
React
• View Library for JS
• Define Components that receive props and maintain state
• + Encourages reusable components
• + Shadow / Virtual DOM
@svpember
React
• View Library for JS
• Define Components that receive props and maintain state
• + Encourages reusable components
• + Shadow / Virtual DOM
• + Reacts to property changes
@svpember
React
• View Library for JS
• Define Components that receive props and maintain state
• + Encourages reusable components
• + Shadow / Virtual DOM
• + Reacts to property changes
• + Has a massive ecosystem
React-Friendly Libraries for
additional functionality
@svpember
Redux
• Library for handling global state, derived from Flux
• One Immutable Store, but can allow for hierarchy (i.e. not flat shape)
• Strict, Unidirectional Data Flow
• Reducers, Actions, ActionCreators
• Intended for Synchronous change operations
• Hooks for Middleware / plugins
@svpember
React
• View Library for JS
• Define Components that receive props and maintain state
• + Encourages reusable components
• + Shadow / Virtual DOM
• + Reacts to property changes
• + Has a massive ecosystem
• - APIs change frequently
@svpember
React
• View Library for JS
• Define Components that receive props and maintain state
• + Encourages reusable components
• + Shadow / Virtual DOM
• + Reacts to property changes
• + Has a massive ecosystem
• - APIs change frequently
• - Forces you to think in React
@svpember
React: Use If…
• You need a powerful View layer for your frontend
• You appreciate the usefulness of composed, reusable View components
• You have the mental agility to follow and keep up with the latest Javascript
trends
HTTP
–Johnny Appleseed
“Type a quote here.”
@svpember
Ratpack
• NIO HTTP Library
• + Built on top of Netty
• + Fast, lightweight
• + Non-opinionated
• + Excellent Testing support
• + Excellent Gradle support
• - Taking a while to adopt rxJava2
• - It’s I/O thread pool is Unbounded
• - Non-obvious how to access registry / DI during a test
@svpember
When to use Ratpack
• You need NIO http support, but don’t want a full framework
• You need to handle high levels of concurrent users
• You’re comfortable going to a conference with many folks from the Grails
team and talking about an alternative solution
Service Layer
@svpember
RxJava
• Reactive Streams implementation on the JVM, designed for communication across
boundaries
• + Makes Async / parallel programming ‘easy’
• + Promotes a highly functional, stream-oriented style
• + Promotes stream-oriented programming
• + Backpressure
• + Composable & Cancelable
• + Ideal for inputs of potentially infinite amounts of data
• - Learning curve is steep / new programming paradigm
• - can swallow exceptions if not careful
@svpember
@svpember
@svpember
When to use RxJava
• You need to write Async code
• You have 1000s+ or potentially infinite events to process
• You want to feel stupid
• You comfortable going to a Groovy conference and telling people you don’t
use GPars
Messaging
@svpember
RabbitMQ
• High Throughput Message Broker
• + Complex and Powerful routing mechanisms
• + High Availability, clustering, back pressure
• + Durability / failure tolerance
• + Easy to deploy / cluster
• - not as fast as other message brokers
• - Written in Erlang
@svpember
When to use RabbitMQ:
• You need Async message handling
• You like having simple consumers and smart routing
• You don’t mind being looked down upon by Kafka fans
Persistance
Come on, Async JDBC!
Overview and Demo
@svpember
@svpember
Images
• I’m sorry (Rain): https://imgur.com/gallery/J27yj3k
• Spartans: www.300themovie.com/
• Colbert: https://giphy.com/gifs/stephen-colbert-report-
hopeful-4KxeicCUTvhrW
• The Flash: https://www.bleedingcool.com/2016/12/27/cws-flash-today-
tomorrow-beyond/
• React Virtual Dom: https://www.youtube.com/watch?v=UH6dz6IGbK4
@svpember
Links
• Repo for the demo: https://github.com/spember/reactive-ratpack-demo

More Related Content

What's hot

[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...
[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...
[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...
Jessica Tai
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
Avi Kedar
 
An Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVMAn Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVM
Steve Pember
 
Polyglottany Is Not A Sin
Polyglottany Is Not A SinPolyglottany Is Not A Sin
Polyglottany Is Not A Sin
Eric Lubow
 

What's hot (20)

Effective Microservices In a Data-centric World
Effective Microservices In a Data-centric WorldEffective Microservices In a Data-centric World
Effective Microservices In a Data-centric World
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
Engineering Netflix Global Operations in the Cloud
Engineering Netflix Global Operations in the CloudEngineering Netflix Global Operations in the Cloud
Engineering Netflix Global Operations in the Cloud
 
[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...
[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...
[Annotated] QConSF 2018: Airbnb's Great Migration - From Monolith to Service-...
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
 
Scaling Uber
Scaling UberScaling Uber
Scaling Uber
 
Windycityrails page performance
Windycityrails page performanceWindycityrails page performance
Windycityrails page performance
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017Serverless Meetup - 12 gennaio 2017
Serverless Meetup - 12 gennaio 2017
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go language
 
An Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVMAn Introduction to Reactive Application, Reactive Streams, and options for JVM
An Introduction to Reactive Application, Reactive Streams, and options for JVM
 
DevOps at Lowe's - Our Journey
DevOps at Lowe's - Our JourneyDevOps at Lowe's - Our Journey
DevOps at Lowe's - Our Journey
 
Scaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsScaling Your Architecture with Services and Events
Scaling Your Architecture with Services and Events
 
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, EuropePatterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
 
Dbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoDbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo Piairo
 
Polyglottany Is Not A Sin
Polyglottany Is Not A SinPolyglottany Is Not A Sin
Polyglottany Is Not A Sin
 
DevOps in the Real World
DevOps in the Real WorldDevOps in the Real World
DevOps in the Real World
 
Challenges of moving a java team to scala
Challenges of moving a java team to scalaChallenges of moving a java team to scala
Challenges of moving a java team to scala
 
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
How and Why GraalVM is quickly becoming relevant for developers (ACEs@home - ...
 

Similar to Reactive All the Way Down the Stack

An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...
Steve Pember
 
London devops logging
London devops loggingLondon devops logging
London devops logging
Tomas Doran
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
Message:Passing - lpw 2012
Message:Passing - lpw 2012Message:Passing - lpw 2012
Message:Passing - lpw 2012
Tomas Doran
 

Similar to Reactive All the Way Down the Stack (20)

Frontend as a first class citizen
Frontend as a first class citizenFrontend as a first class citizen
Frontend as a first class citizen
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
 
An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...An introduction to Reactive applications, Reactive Streams, and options for t...
An introduction to Reactive applications, Reactive Streams, and options for t...
 
London devops logging
London devops loggingLondon devops logging
London devops logging
 
Web Clients for Ruby and What they should be in the future
Web Clients for Ruby and What they should be in the futureWeb Clients for Ruby and What they should be in the future
Web Clients for Ruby and What they should be in the future
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
 
Scaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermScaling Your Architecture for the Long Term
Scaling Your Architecture for the Long Term
 
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of SimplicityLarge Scale Architecture -- The Unreasonable Effectiveness of Simplicity
Large Scale Architecture -- The Unreasonable Effectiveness of Simplicity
 
Change data capture with MongoDB and Kafka.
Change data capture with MongoDB and Kafka.Change data capture with MongoDB and Kafka.
Change data capture with MongoDB and Kafka.
 
Patterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, Europe
Patterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, EuropePatterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, Europe
Patterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, Europe
 
NullMQ @ PDX
NullMQ @ PDXNullMQ @ PDX
NullMQ @ PDX
 
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objectsBacking Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
Backing Data Silo Atack: Alfresco sharding, SOLR for non-flat objects
 
From 100s to 100s of Millions
From 100s to 100s of MillionsFrom 100s to 100s of Millions
From 100s to 100s of Millions
 
Lattice yapc-slideshare
Lattice yapc-slideshareLattice yapc-slideshare
Lattice yapc-slideshare
 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
 
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO ForumChris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
 
Message:Passing - lpw 2012
Message:Passing - lpw 2012Message:Passing - lpw 2012
Message:Passing - lpw 2012
 
Performance and Abstractions
Performance and AbstractionsPerformance and Abstractions
Performance and Abstractions
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?
 
Scala and Lift
Scala and LiftScala and Lift
Scala and Lift
 

More from Steve Pember

Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices Environment
Steve Pember
 
A year with event sourcing and CQRS
A year with event sourcing and CQRSA year with event sourcing and CQRS
A year with event sourcing and CQRS
Steve Pember
 
Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015
Steve Pember
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
Steve Pember
 

More from Steve Pember (20)

Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
 
SACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices EnvironmentSACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices Environment
 
Gradle Show and Tell
Gradle Show and TellGradle Show and Tell
Gradle Show and Tell
 
Event storage in a distributed system
Event storage in a distributed systemEvent storage in a distributed system
Event storage in a distributed system
 
Harnessing Spark and Cassandra with Groovy
Harnessing Spark and Cassandra with GroovyHarnessing Spark and Cassandra with Groovy
Harnessing Spark and Cassandra with Groovy
 
Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices Environment
 
Reactive Streams and the Wide World of Groovy
Reactive Streams and the Wide World of GroovyReactive Streams and the Wide World of Groovy
Reactive Streams and the Wide World of Groovy
 
A year with event sourcing and CQRS
A year with event sourcing and CQRSA year with event sourcing and CQRS
A year with event sourcing and CQRS
 
Reactive Streams and the Wide World of Groovy
Reactive Streams and the Wide World of GroovyReactive Streams and the Wide World of Groovy
Reactive Streams and the Wide World of Groovy
 
Richer Data History with Event Sourcing (SpringOne 2GX 2015
Richer Data History with Event Sourcing (SpringOne 2GX 2015Richer Data History with Event Sourcing (SpringOne 2GX 2015
Richer Data History with Event Sourcing (SpringOne 2GX 2015
 
Springone2gx 2015 Reactive Options for Groovy
Springone2gx 2015  Reactive Options for GroovySpringone2gx 2015  Reactive Options for Groovy
Springone2gx 2015 Reactive Options for Groovy
 
Gr8conf US 2015 - Intro to Event Sourcing with Groovy
Gr8conf US 2015 - Intro to Event Sourcing with GroovyGr8conf US 2015 - Intro to Event Sourcing with Groovy
Gr8conf US 2015 - Intro to Event Sourcing with Groovy
 
Gr8conf US 2015: Reactive Options for Groovy
Gr8conf US 2015: Reactive Options for GroovyGr8conf US 2015: Reactive Options for Groovy
Gr8conf US 2015: Reactive Options for Groovy
 
Groovy Options for Reactive Applications - Greach 2015
Groovy Options for Reactive Applications - Greach 2015Groovy Options for Reactive Applications - Greach 2015
Groovy Options for Reactive Applications - Greach 2015
 
Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015
 
Richer data-history-event-sourcing
Richer data-history-event-sourcingRicher data-history-event-sourcing
Richer data-history-event-sourcing
 
Managing a Microservices Development Team (And advanced Microservice concerns)
Managing a Microservices Development Team (And advanced Microservice concerns)Managing a Microservices Development Team (And advanced Microservice concerns)
Managing a Microservices Development Team (And advanced Microservice concerns)
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
 
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...Why Reactive Architecture Will Take Over The World (and why we should be wary...
Why Reactive Architecture Will Take Over The World (and why we should be wary...
 
Richer Data History in Groovy with Event Sourcing
Richer Data History in Groovy with Event SourcingRicher Data History in Groovy with Event Sourcing
Richer Data History in Groovy with Event Sourcing
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Reactive All the Way Down the Stack