SlideShare une entreprise Scribd logo
1  sur  180
State management
with GraphQL
Mikhail Asavkin
@limenutt
We all interact with property every
day.
We build, sell, buy, rent, lease,
own, use and admire it.
At Skychute
We improve experiences people
have with property.
We use technology to provide
tenants, owners, investors, agents,
developers and builders with
greater experience and outcomes.
At the heart of our company,
our greatest asset are
brave engineers
passionate about property.
Join
our cause
🦸‍♂
Disclaimer:
Meanwhile in AU...
@limenutt
In Australia...
@limenutt
In Australia...
● Dangerous animals
@limenutt
In Australia...
● Dangerous animals
● No central heating
@limenutt
In Australia...
● Dangerous animals
● No central heating
● Engineers are lazy, don’t like to write a lot of code
@limenutt
In Australia...
● Dangerous animals
● No central heating
● Engineers are lazy, don’t like to write a lot of code
● Engineers are much more expensive than hardware
@limenutt
In Australia...
● Dangerous animals
● No central heating
● Engineers are lazy, don’t like to write a lot of code
● Engineers are much more expensive than hardware
● Engineers are scarse and precious
@limenutt
In Australia...
● Dangerous animals
● No central heating
● Engineers are lazy, don’t like to write a lot of code
● Engineers are much more expensive than hardware
● Engineers are scarse and precious
● IT businesses are mostly product companies,
(not agencies as opposed to CIS).
@limenutt
Soup du jour
@limenutt
Soup du jour
● Why GraphQL
@limenutt
Soup du jour
● Why GraphQL
● Real-time API
@limenutt
Soup du jour
● Why GraphQL
● Real-time API
● Real-time GraphQL API
@limenutt
Soup du jour
● Why GraphQL
● Real-time API
● Real-time GraphQL API
● Real-time GraphQL API on the Frontend
@limenutt
Soup du jour
● Why GraphQL
● Real-time API
● Real-time GraphQL API
● Real-time GraphQL API on the Frontend
● Cloud state management
@limenutt
Soup du jour
● Why GraphQL
● Real-time API
● Real-time GraphQL API
● Real-time GraphQL API on the Frontend
● Cloud state management
● Demo
@limenutt
Soup du jour
● Why GraphQL
● Real-time API
● Real-time GraphQL API
● Real-time GraphQL API on the Frontend
● Cloud state management
● Demo
● Tips & Tricks
@limenutt
The Stack
@limenutt
Why GraphQL
@limenutt
● Client decides what fields to fetch from the API
GraphQL features
@limenutt
● Client decides what fields to fetch from the API
● No underfetching, or overfetching
GraphQL features
@limenutt
● Client decides what fields to fetch from the API
● No underfetching, or overfetching
● Allows to combine multiple data sources
(database and 3rd party APIs) under a single
facade
GraphQL features
@limenutt
Demo
@limenutt
Realtime API
@limenutt
“Pull” API
Client Server
@limenutt
“Pull” API
Client Server
What’s the status of task #ZZ942α?
@limenutt
“Pull” API
Client Server
What’s the status of task #ZZ942α?
Here is the info for the task #ZZ942α!
@limenutt
“Pull” API
Client Server
What’s the status of task #ZZ942α?
Here is the info for the task #ZZ942α!
What’s the status of task #ZZ942α?
@limenutt
“Pull” API
Client Server
What’s the status of task #ZZ942α?
Here is the info for the task #ZZ942α!
What’s the status of task #ZZ942α?
Here is the info for the task #ZZ942α!
@limenutt
“Pull” API
Client Server
What’s the status of task #ZZ942α?
Here is the info for the task #ZZ942α!
What’s the status of task #ZZ942α?
Here is the info for the task #ZZ942α!
@limenutt
Real-time API
Server
I’m interested in the task #ZZ942α?
Client
@limenutt
Real-time API
Server
I’m interested in the task #ZZ942α?
Here is the current info for the task.
I’ll let you know if something changes.
Client
@limenutt
Real-time API
Server
I’m interested in the task #ZZ942α?
Here is the current info for the task.
I’ll let you know if something changes.
Looks like the progress has been updated.
Client
@limenutt
Real-time API
Server
I’m interested in the task #ZZ942α?
Here is the current info for the task.
I’ll let you know if something changes.
Looks like the progress has been updated.
The task is moved to Backlog.
Client
@limenutt
Real-time API
Server
I’m interested in the task #ZZ942α?
Here is the current info for the task.
I’ll let you know if something changes.
Looks like the progress has been updated.
The task is moved to Backlog.
You can no longer see the task, sorry.
Client
@limenutt
Real-time API
ServerClient
@limenutt
Real-time API
Server
I’m user #XX2104~, something I should know?
Client
@limenutt
Real-time API
Server
I’m user #XX2104~, something I should know?
Here is your name in case you forgot.
I’ll let you know if anything happens.
Client
@limenutt
Real-time API
Server
I’m user #XX2104~, something I should know?
Here is your name in case you forgot.
I’ll let you know if anything happens.
There is a new task you might interested in
Client
@limenutt
Real-time API
Server
I’m user #XX2104~, something I should know?
Here is your name in case you forgot.
I’ll let you know if anything happens.
There is a new task you might interested in
Too late, someone else has grabbed already
Client
@limenutt
Real-time API
Server
I’m user #XX2104~, something I should know?
Here is your name in case you forgot.
I’ll let you know if anything happens.
There is a new task you might interested in
Too late, someone else has grabbed already
There is a new message for you, sir
Client
@limenutt
Real-time API
Server
I’m user #XX2104~, something I should know?
Here is your name in case you forgot.
I’ll let you know if anything happens.
There is a new task you might interested in
Too late, someone else has grabbed already
There is a new message for you, sir
Client
@limenutt
Real-time API Summary
@limenutt
Real-time API Summary
● Client subscribes to the information of interest
@limenutt
Real-time API Summary
● Client subscribes to the information of interest
● Server sends updates based on the clients’ subscriptions
@limenutt
Real-time API Summary
● Client subscribes to the information of interest
● Server sends updates based on the clients’ subscriptions
● If nothing changes, there are no updates.
@limenutt
Real-time API Summary
● Client subscribes to the information of interest
● Server sends updates based on the clients’ subscriptions
● If nothing changes, there are no updates.
● Client may have many different subscriptions at the same time
@limenutt
Real-time API Summary
● Client subscribes to the information of interest
● Server sends updates based on the clients’ subscriptions
● If nothing changes, there are no updates.
● Client may have many different subscriptions at the same time
● In 2020 we expect everything to be realtime and up-to-date.
@limenutt
Real-time API Technology
● Short polling (send requests every X seconds)
● Long polling
● WebSocket
● Server-Sent Events
● HTTP/2 Bidirectional streaming
@limenutt
Real-time API use cases
@limenutt
Real-time API use cases
● Communication
@limenutt
Real-time API use cases
● Communication
● Collaboration
@limenutt
Real-time API use cases
● Communication
● Collaboration
● Dynamic positioning
@limenutt
Real-time API use cases
● Communication
● Collaboration
● Dynamic positioning
● Analytics / Reporting
@limenutt
Real-time API use cases
● Communication
● Collaboration
● Dynamic positioning
● Analytics / Reporting
Any
PWA
@limenutt
Real-time API providers
socket.io SignalR
Comet
Eventsource
DYI BAAS
@limenutt
Why go with Backend-as-a-service
@limenutt
● Focus effort where your revenue is — PWA / mobile apps
Why go with Backend-as-a-service
@limenutt
● Focus effort where your revenue is — PWA / mobile apps
● Cut the costs of having an additional layer to maintain
Why go with Backend-as-a-service
@limenutt
● Focus effort where your revenue is — PWA / mobile apps
● Cut the costs of having an additional layer to maintain
● Highly scalable and secure backend
Why go with Backend-as-a-service
@limenutt
● Focus effort where your revenue is — PWA / mobile apps
● Cut the costs of having an additional layer to maintain
● Highly scalable and secure backend
● Less code to change when the data structure changes
Why go with Backend-as-a-service
@limenutt
Real-time BAAS quick comparison
@limenutt
● Firebase: no search, very limited filtering/sorting, slooow
Real-time BAAS quick comparison
@limenutt
● Firebase: no search, very limited filtering/sorting, slooow
● Firestore: same, less slow
Real-time BAAS quick comparison
@limenutt
● Firebase: no search, very limited filtering/sorting, slooow
● Firestore: same, less slow
● Realm: offline first, cloud service, $$$
Real-time BAAS quick comparison
@limenutt
● Firebase: no search, very limited filtering/sorting, slooow
● Firestore: same, less slow
● Realm: offline first, cloud service, $$$
● Prisma: too DIY, a lot of boilerplate to write still
Real-time BAAS quick comparison
@limenutt
● Firebase: no search, very limited filtering/sorting, slooow
● Firestore: same, less slow
● Realm: offline first, cloud service, $$$
● Prisma: too DIY, a lot of boilerplate to write still
● AWS AppSync: still a lot of backend work to do
Real-time BAAS quick comparison
@limenutt
● Firebase: no search, very limited filtering/sorting, slooow
● Firestore: same, less slow
● Realm: offline first, cloud service, $$$
● Prisma: too DIY, a lot of boilerplate to write still
● AWS AppSync: still a lot of backend work to do
● Hasura: great, open-source, run on your servers
Real-time BAAS quick comparison
@limenutt
Real-time
GraphQL API
@limenutt
Frontend architecture
@limenutt
Current state management
Container Service
API
Component A
Component B
state
state
state
data
@limenutt
Current state management
Container Service
Fetch
API
Component A
Component B
state
state
state
data
@limenutt
Current state management
Container Service
Fetch
API
Mutate
Component A
Component B
state
state
state
data
@limenutt
Reducer
App reducer
Container 1
Service API
Component A
Component B
Container 2
Component A
Component B
data
@limenutt
Reducer
App reducer
Container 1
Service API
Component A
Component B
store
Container 2
Component A
Component B
data
@limenutt
Reducer
App reducer
Container 1
Service API
Component A
Component B
store
Container 2
Component A
Component B
data
Observe
@limenutt
Reducer
App reducer
Container 1
Service API
Component A
Component B
store
Container 2
Component A
Component B
data
Observe
@limenutt
Fetch
Fetch
Reducer
App reducer
Container 1
Service API
Component A
Component B
store
Container 2
Component A
Component B
data
Observe
Mutate
@limenutt
Reducer
App reducer
Container 1
Service API
Mutate
Component A
Component B
store
Container 2
Component A
Component B
data
Observe
Mutate
Fetch
@limenutt
State management with Realtime API
Container 1
data
Component A
Component B
Page 2
Component A
Component B
Service
@limenutt
State management with Realtime API
Container 1
data
Component A
Component B
state
Page 2
Component A
Component B
Service
@limenutt
State management with Realtime API
Container 1
data
Component A
Component B
state
Page 2
Component A
Component B
Service Realtime API
@limenutt
State management with Realtime API
Container 1
data
Component A
Component B
state
Page 2
Component A
Component B
Service Realtime API
Mutate
@limenutt
State management with Realtime API
Container 1
data
Component A
Component B
state
Page 2
Component A
Component B
Service
Observe
Mutate
Realtime API
Smart components
@limenutt
Smart components
@limenutt
● Receive minimal inputs from the parent or environment
Smart components
@limenutt
● Receive minimal inputs from the parent or environment
● Define their own GraphQL subscriptions and mutations
Smart components
@limenutt
● Receive minimal inputs from the parent or environment
● Define their own GraphQL subscriptions and mutations
● Rely on data models derived from GraphQL Schema (codegen)
Smart components
@limenutt
● Receive minimal inputs from the parent or environment
● Define their own GraphQL subscriptions and mutations
● Rely on data models derived from GraphQL Schema (codegen)
● Use Rx to observe the state from the cloud
Smart components
@limenutt
● Receive minimal inputs from the parent or environment
● Define their own GraphQL subscriptions and mutations
● Rely on data models derived from GraphQL Schema (codegen)
● Use Rx to observe the state from the cloud
● Mutate state directly in the cloud
Smart components
@limenutt
● Receive minimal inputs from the parent or environment
● Define their own GraphQL subscriptions and mutations
● Rely on data models derived from GraphQL Schema (codegen)
● Use Rx to observe the state from the cloud
● Mutate state directly in the cloud
● DRY, single responsibility, responsive, etc.
Smart components
@limenutt
Smart components vs Dumb components
Container 1
state
Component A Component B
actions
Container 2
state
Component A
actions
@limenutt
Smart components vs Dumb components
Container 1
Component A
Container 2
Component B Component A
@limenutt
Smart components vs Dumb components
Container 1
Component A
Container 2
Component B Component A
Component AComponent A
@limenutt
Example
@limenutt
@limenutt
Product
@limenutt
Cart
Product
@limenutt
Cart@Input()
orderId: string
@limenutt
Cart
Products
currently
selected
@Input()
orderId: string
@limenutt
Cart
Products
currently
selected
Remove
from cart
@Input()
orderId: string
@limenutt
Cart
Products
currently
selected
Remove
from cart
Current
total
@Input()
orderId: string
@limenutt
Cart
Products
currently
selected
Remove
from cart
Current
total
Product
quantity
@Input()
orderId: string
@limenutt
Product
@Input()
productId: string
@Input()
orderId: string
@limenutt
Product @limenutt
Product
Add/remove
from cart
@limenutt
Product
Add/remove
from cart Update
quantity
@limenutt
Product
Add/remove
from cart Update
quantityUnavailable
@limenutt
@limenutt
State management with Realtime API
Container 1
data
Component A
Component B
state
Page 2
Component A
Component B
Service
Observe
Mutate
Realtime API
@limenutt
@limenutt
State
@limenutt
State
GraphQL
Mutation
@limenutt
State
GraphQL
Mutation GraphQL
subscription
@limenutt
State
GraphQL
Mutation GraphQL
subscription
@limenutt
State
@limenutt
State
Demo?...
What about pure UI state?
@limenutt
State
GraphQL
subscription
State
GraphQL
subscription
State
GraphQL
subscription
State
GraphQL
subscription
State
State
Data state
persistence regimes
@limenutt
Server
State
Local
State
@limenutt
Server
State
Local
State
@limenutt
Server
State
Local
State
@limenutt
Server
State
Local
State
@limenutt
Server only
Local first
Local only
Server first
Offline support
Dataconsistency @limenutt
Server only
Local first
Local only
Server first
Offline support
Dataconsistency @limenutt
Server only
Local first
Local only
Server first
Offline support
Dataconsistency @limenutt
Server only
Local first
Local only
Server first
Offline support
Dataconsistency @limenutt
Server only
Local first
Local only
Server first
Offline support
Dataconsistency @limenutt
Tips and Tricks
@limenutt
Don’t
List / table component Service
Observe a list of objects
and sub-objects of each
object in the list
in one subscription
Substandard UX
Item 1
Item 2
…...
Pagination, sorting, filtering
@limenutt
Do
List / table component Service
Observe a list of IDs
Item 1
Item 2
…...
Pagination, sorting, filtering
@limenutt
Do
List / table component Service
Observe a list of IDs
Item 1
Item 2
…...
Pagination, sorting, filtering
Observe item 1
Observe item 2
@limenutt
Track by
@limenutt
Track by
@limenutt
Async pipe + as
@limenutt
Async pipe + as
@limenutt
Async pipe + as
@limenutt
Tools
@limenutt
Tools
@limenutt
Takeaways
@limenutt
Whatever you do, there is a
person who is doing it better.
@limenutt
Whatever you do, there is a
person who is doing it better.
Because they are using
GraphQL
@limenutt
You can build complex apps
without stress
@limenutt
You can build complex apps
without stress
and without redux
@limenutt
There is no technology that
matches every use case
@limenutt
There is no technology that
matches every use case
But it’s not the reason the
reinvent the wheel
@limenutt
Boilerplate is great
for job security
@limenutt
Boilerplate is great
for job security
Unless you are building your
own product
@limenutt
Australia is full
of dangerous animals, so…
@limenutt
Australia is full
of dangerous animals, so…
Come visit us once we
reopen the borders
@limenutt
Yes, you have
questions.
@limenutt
@limenutt
Thank you!
@limenutt

Contenu connexe

Tendances

A Practical Approach to React Native at All Things Open Conference
A Practical Approach to React Native at All Things Open ConferenceA Practical Approach to React Native at All Things Open Conference
A Practical Approach to React Native at All Things Open ConferenceTracy Lee
 
DevOps Measurement - DevOpsDays DC
DevOps Measurement - DevOpsDays DCDevOps Measurement - DevOpsDays DC
DevOps Measurement - DevOpsDays DCTapabrata Pal
 
Managing the flow of asynchronous operations in Node.js - SFNode
Managing the flow of asynchronous operations in Node.js - SFNodeManaging the flow of asynchronous operations in Node.js - SFNode
Managing the flow of asynchronous operations in Node.js - SFNodeErick Wendel
 
Voice is the New Keyboard - Voice Interfaces in 2018 and Beyond
Voice is the New Keyboard - Voice Interfaces in 2018 and BeyondVoice is the New Keyboard - Voice Interfaces in 2018 and Beyond
Voice is the New Keyboard - Voice Interfaces in 2018 and BeyondKeanan Koppenhaver
 
Novidades Angular 4.x e CLI
Novidades Angular 4.x e CLI Novidades Angular 4.x e CLI
Novidades Angular 4.x e CLI Loiane Groner
 
Introduce Atlassian Statuspage service
Introduce Atlassian Statuspage serviceIntroduce Atlassian Statuspage service
Introduce Atlassian Statuspage serviceMinJeong Kim
 
San Francisco Atlassian User Group - February 2014
San Francisco Atlassian User Group - February 2014San Francisco Atlassian User Group - February 2014
San Francisco Atlassian User Group - February 2014Nicholas Muldoon
 
API 101 - Understanding APIs
API 101 - Understanding APIsAPI 101 - Understanding APIs
API 101 - Understanding APIs3scale
 
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014Daniel Jacobson
 
2600Hz - Least Cost Routing in the Cloud
2600Hz - Least Cost Routing in the Cloud2600Hz - Least Cost Routing in the Cloud
2600Hz - Least Cost Routing in the Cloud2600Hz
 
Webinar - Scaling your Puppet infrastructure
Webinar - Scaling your Puppet infrastructureWebinar - Scaling your Puppet infrastructure
Webinar - Scaling your Puppet infrastructureOlinData
 
The Performance and Scalability Mindset
The Performance and Scalability MindsetThe Performance and Scalability Mindset
The Performance and Scalability MindsetBrian Doll
 
Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices EnvironmentSteve Pember
 
Mocking APIs Collaboratively with Postman
Mocking APIs Collaboratively with PostmanMocking APIs Collaboratively with Postman
Mocking APIs Collaboratively with PostmanNordic APIs
 
History and Future of the Netflix API - Mashery Evolution of Distribution
History and Future of the Netflix API - Mashery Evolution of DistributionHistory and Future of the Netflix API - Mashery Evolution of Distribution
History and Future of the Netflix API - Mashery Evolution of DistributionDaniel Jacobson
 
Finding and fixing top performance issues with new relic rpm
Finding and fixing top performance issues with new relic rpmFinding and fixing top performance issues with new relic rpm
Finding and fixing top performance issues with new relic rpmBrian Doll
 
Microservices and serverless in python projects
Microservices and serverless in python projectsMicroservices and serverless in python projects
Microservices and serverless in python projectsJose Manuel Ortega Candel
 

Tendances (20)

A Practical Approach to React Native at All Things Open Conference
A Practical Approach to React Native at All Things Open ConferenceA Practical Approach to React Native at All Things Open Conference
A Practical Approach to React Native at All Things Open Conference
 
DevOps Measurement - DevOpsDays DC
DevOps Measurement - DevOpsDays DCDevOps Measurement - DevOpsDays DC
DevOps Measurement - DevOpsDays DC
 
Managing the flow of asynchronous operations in Node.js - SFNode
Managing the flow of asynchronous operations in Node.js - SFNodeManaging the flow of asynchronous operations in Node.js - SFNode
Managing the flow of asynchronous operations in Node.js - SFNode
 
Voice is the New Keyboard - Voice Interfaces in 2018 and Beyond
Voice is the New Keyboard - Voice Interfaces in 2018 and BeyondVoice is the New Keyboard - Voice Interfaces in 2018 and Beyond
Voice is the New Keyboard - Voice Interfaces in 2018 and Beyond
 
Novidades Angular 4.x e CLI
Novidades Angular 4.x e CLI Novidades Angular 4.x e CLI
Novidades Angular 4.x e CLI
 
Introduce Atlassian Statuspage service
Introduce Atlassian Statuspage serviceIntroduce Atlassian Statuspage service
Introduce Atlassian Statuspage service
 
San Francisco Atlassian User Group - February 2014
San Francisco Atlassian User Group - February 2014San Francisco Atlassian User Group - February 2014
San Francisco Atlassian User Group - February 2014
 
Velocity + Fluent 2018: API Performance
Velocity + Fluent 2018: API PerformanceVelocity + Fluent 2018: API Performance
Velocity + Fluent 2018: API Performance
 
API 101 - Understanding APIs
API 101 - Understanding APIsAPI 101 - Understanding APIs
API 101 - Understanding APIs
 
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014
 
API for newbs
API for newbsAPI for newbs
API for newbs
 
2600Hz - Least Cost Routing in the Cloud
2600Hz - Least Cost Routing in the Cloud2600Hz - Least Cost Routing in the Cloud
2600Hz - Least Cost Routing in the Cloud
 
Webinar - Scaling your Puppet infrastructure
Webinar - Scaling your Puppet infrastructureWebinar - Scaling your Puppet infrastructure
Webinar - Scaling your Puppet infrastructure
 
The Performance and Scalability Mindset
The Performance and Scalability MindsetThe Performance and Scalability Mindset
The Performance and Scalability Mindset
 
Going serverless
Going serverlessGoing serverless
Going serverless
 
Surviving in a Microservices Environment
Surviving in a Microservices EnvironmentSurviving in a Microservices Environment
Surviving in a Microservices Environment
 
Mocking APIs Collaboratively with Postman
Mocking APIs Collaboratively with PostmanMocking APIs Collaboratively with Postman
Mocking APIs Collaboratively with Postman
 
History and Future of the Netflix API - Mashery Evolution of Distribution
History and Future of the Netflix API - Mashery Evolution of DistributionHistory and Future of the Netflix API - Mashery Evolution of Distribution
History and Future of the Netflix API - Mashery Evolution of Distribution
 
Finding and fixing top performance issues with new relic rpm
Finding and fixing top performance issues with new relic rpmFinding and fixing top performance issues with new relic rpm
Finding and fixing top performance issues with new relic rpm
 
Microservices and serverless in python projects
Microservices and serverless in python projectsMicroservices and serverless in python projects
Microservices and serverless in python projects
 

Similaire à State management with GraphQL

GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsGraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsNicola Molinari
 
Real-time GraphQL API with minimum coding and maximum benefit
 Real-time GraphQL API with minimum coding and maximum benefit Real-time GraphQL API with minimum coding and maximum benefit
Real-time GraphQL API with minimum coding and maximum benefitMikhail Asavkin
 
DevOps Fest 2019. Gianluca Arbezzano. DevOps never sleeps. What we learned fr...
DevOps Fest 2019. Gianluca Arbezzano. DevOps never sleeps. What we learned fr...DevOps Fest 2019. Gianluca Arbezzano. DevOps never sleeps. What we learned fr...
DevOps Fest 2019. Gianluca Arbezzano. DevOps never sleeps. What we learned fr...DevOps_Fest
 
Petabytes of Data & No Servers: Corteva Scales DNA Analysis to Meet Increasin...
Petabytes of Data & No Servers: Corteva Scales DNA Analysis to Meet Increasin...Petabytes of Data & No Servers: Corteva Scales DNA Analysis to Meet Increasin...
Petabytes of Data & No Servers: Corteva Scales DNA Analysis to Meet Increasin...Amazon Web Services
 
Data Pipelines -Big Data Meets Salesforce
Data Pipelines -Big Data Meets SalesforceData Pipelines -Big Data Meets Salesforce
Data Pipelines -Big Data Meets SalesforceCarolEnLaNube
 
Data Pipelines: Big Data Meets Salesforce
Data Pipelines: Big Data Meets SalesforceData Pipelines: Big Data Meets Salesforce
Data Pipelines: Big Data Meets SalesforceSalesforce Developers
 
A Trifecta of Real-Time Applications: Apache Kafka, Flink, and Druid
A Trifecta of Real-Time Applications: Apache Kafka, Flink, and DruidA Trifecta of Real-Time Applications: Apache Kafka, Flink, and Druid
A Trifecta of Real-Time Applications: Apache Kafka, Flink, and DruidHostedbyConfluent
 
That Conference 2017: Refactoring your Monitoring
That Conference 2017: Refactoring your MonitoringThat Conference 2017: Refactoring your Monitoring
That Conference 2017: Refactoring your MonitoringJamie Riedesel
 
Data Pipelines - Big Data meets Salesforce
Data Pipelines - Big Data meets SalesforceData Pipelines - Big Data meets Salesforce
Data Pipelines - Big Data meets Salesforceagarciaodeian
 
Plataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funcionaPlataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funcionaOsvaldo Santana Neto
 
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...DevOpsDays Tel Aviv
 
Scaling Production Data across Microservices
Scaling Production Data across MicroservicesScaling Production Data across Microservices
Scaling Production Data across MicroservicesErik Ashepa
 
Tools, Tips and Techniques for Developing Real-time Apps. Phil Leggetter
Tools, Tips and Techniques for Developing Real-time Apps. Phil LeggetterTools, Tips and Techniques for Developing Real-time Apps. Phil Leggetter
Tools, Tips and Techniques for Developing Real-time Apps. Phil LeggetterFuture Insights
 
The Past, Present, and Future of Apache Flink
The Past, Present, and Future of Apache FlinkThe Past, Present, and Future of Apache Flink
The Past, Present, and Future of Apache FlinkAljoscha Krettek
 
Flink Forward Berlin 2018: Aljoscha Krettek & Till Rohrmann - Keynote: "A Yea...
Flink Forward Berlin 2018: Aljoscha Krettek & Till Rohrmann - Keynote: "A Yea...Flink Forward Berlin 2018: Aljoscha Krettek & Till Rohrmann - Keynote: "A Yea...
Flink Forward Berlin 2018: Aljoscha Krettek & Till Rohrmann - Keynote: "A Yea...Flink Forward
 
Netflix Big Data Paris 2017
Netflix Big Data Paris 2017Netflix Big Data Paris 2017
Netflix Big Data Paris 2017Jason Flittner
 
Drawbridge_MeetUp_June19_072414
Drawbridge_MeetUp_June19_072414Drawbridge_MeetUp_June19_072414
Drawbridge_MeetUp_June19_072414Nitin Panjwani
 
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...Capgemini
 
ASTQB washington-sept-2015
ASTQB washington-sept-2015ASTQB washington-sept-2015
ASTQB washington-sept-2015Dan Boutin
 

Similaire à State management with GraphQL (20)

GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At CommercetoolsGraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
GraphQL Munich Meetup #1 - How We Use GraphQL At Commercetools
 
Real-time GraphQL API with minimum coding and maximum benefit
 Real-time GraphQL API with minimum coding and maximum benefit Real-time GraphQL API with minimum coding and maximum benefit
Real-time GraphQL API with minimum coding and maximum benefit
 
DevOps Fest 2019. Gianluca Arbezzano. DevOps never sleeps. What we learned fr...
DevOps Fest 2019. Gianluca Arbezzano. DevOps never sleeps. What we learned fr...DevOps Fest 2019. Gianluca Arbezzano. DevOps never sleeps. What we learned fr...
DevOps Fest 2019. Gianluca Arbezzano. DevOps never sleeps. What we learned fr...
 
Petabytes of Data & No Servers: Corteva Scales DNA Analysis to Meet Increasin...
Petabytes of Data & No Servers: Corteva Scales DNA Analysis to Meet Increasin...Petabytes of Data & No Servers: Corteva Scales DNA Analysis to Meet Increasin...
Petabytes of Data & No Servers: Corteva Scales DNA Analysis to Meet Increasin...
 
Data Pipelines -Big Data Meets Salesforce
Data Pipelines -Big Data Meets SalesforceData Pipelines -Big Data Meets Salesforce
Data Pipelines -Big Data Meets Salesforce
 
Data Pipelines: Big Data Meets Salesforce
Data Pipelines: Big Data Meets SalesforceData Pipelines: Big Data Meets Salesforce
Data Pipelines: Big Data Meets Salesforce
 
A Trifecta of Real-Time Applications: Apache Kafka, Flink, and Druid
A Trifecta of Real-Time Applications: Apache Kafka, Flink, and DruidA Trifecta of Real-Time Applications: Apache Kafka, Flink, and Druid
A Trifecta of Real-Time Applications: Apache Kafka, Flink, and Druid
 
Optimizing your API to Perform at Scale
Optimizing your API to Perform at ScaleOptimizing your API to Perform at Scale
Optimizing your API to Perform at Scale
 
That Conference 2017: Refactoring your Monitoring
That Conference 2017: Refactoring your MonitoringThat Conference 2017: Refactoring your Monitoring
That Conference 2017: Refactoring your Monitoring
 
Data Pipelines - Big Data meets Salesforce
Data Pipelines - Big Data meets SalesforceData Pipelines - Big Data meets Salesforce
Data Pipelines - Big Data meets Salesforce
 
Plataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funcionaPlataforma distribuída de Microserviços ou, como a Olist funciona
Plataforma distribuída de Microserviços ou, como a Olist funciona
 
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
 
Scaling Production Data across Microservices
Scaling Production Data across MicroservicesScaling Production Data across Microservices
Scaling Production Data across Microservices
 
Tools, Tips and Techniques for Developing Real-time Apps. Phil Leggetter
Tools, Tips and Techniques for Developing Real-time Apps. Phil LeggetterTools, Tips and Techniques for Developing Real-time Apps. Phil Leggetter
Tools, Tips and Techniques for Developing Real-time Apps. Phil Leggetter
 
The Past, Present, and Future of Apache Flink
The Past, Present, and Future of Apache FlinkThe Past, Present, and Future of Apache Flink
The Past, Present, and Future of Apache Flink
 
Flink Forward Berlin 2018: Aljoscha Krettek & Till Rohrmann - Keynote: "A Yea...
Flink Forward Berlin 2018: Aljoscha Krettek & Till Rohrmann - Keynote: "A Yea...Flink Forward Berlin 2018: Aljoscha Krettek & Till Rohrmann - Keynote: "A Yea...
Flink Forward Berlin 2018: Aljoscha Krettek & Till Rohrmann - Keynote: "A Yea...
 
Netflix Big Data Paris 2017
Netflix Big Data Paris 2017Netflix Big Data Paris 2017
Netflix Big Data Paris 2017
 
Drawbridge_MeetUp_June19_072414
Drawbridge_MeetUp_June19_072414Drawbridge_MeetUp_June19_072414
Drawbridge_MeetUp_June19_072414
 
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...
Petabytes of Data and No Servers: Corteva Scales DNA Analysis to Meet Increas...
 
ASTQB washington-sept-2015
ASTQB washington-sept-2015ASTQB washington-sept-2015
ASTQB washington-sept-2015
 

Dernier

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Dernier (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

State management with GraphQL