SlideShare a Scribd company logo
M A K I N G Y O U R A P P R E S I L I E N T
T O N E T W O R K FA I L U R E S
O F F L I N E - F I R S T
W H O A M I ?
M A K I N G Y O U R A P P R E S I L I E N T
T O N E T W O R K FA I L U R E S
O F F L I N E - F I R S T
M O B I L E W O R L D
W E L I V E I N A N I N C R E A S I N G LY
B E I N G O F F L I N E I S A G I V E N ,
N O T A N E X C E P T I O N .
H O W C A N A P P L I C AT I O N
D E V E L O P E R S H A N D L E T H I S ?
N O T M Y P R O B L E M
N O T I F Y T H E U S E R
E R R O R H A N D L I N G
H A N D L E I T C A S E B Y C A S E
O F F L I N E - F I R S T D E V E L O P M E N T
S E R V I C E W O R K E R S
“A service worker is a script that your browser runs in the
background, separate from a web page, opening the
door to features that don't need a web page or user
interaction.”
S E R V I C E W O R K E R S
“Using service worker you can hijack connections,
fabricate, and filter responses. Powerful stuff.”
https://developers.google.com/web/fundamentals/
getting-started/primers/service-workers
S E R V I C E W O R K E R S
I’m not here to talk about Service Workers..
D ATA S Y N C
I ’ M H E R E T O TA L K A B O U T
C O U C H D B
F E AT U R E S
• Document database
• Versions
• Changes Feed
• Sync
S O M E O P E N - S O U R C E
• POUCH-CLERK
• https://github.com/pgte/pouch-clerk
• Example app
• https://github.com/pgte/pouch-clerk-example-app
D E M O T I M E !
TA K E - A WAY S
• Offline is a given, not an exception
• You should not handle networking errors case-by-case
• Embrace offline-first techniques
• Sync is your friend
T H A N K Y O U ! 

O N S L I D E S H A R E :
bit.ly/2pkU4pQ
Q U E S T I O N S ?
C R E D I T S
• Hans Kylberg - https://www.flickr.com/photos/visulogik/1619008375
• Vodafone UK slide: Jake Archibald, Google I/O
• Machinery: Franz Zajizek, Astronomical Clock Machinery - https://
commons.wikimedia.org/wiki/File:Vienna_-
_Vintage_Franz_Zajizek_Astronomical_Clock_machinery_-_0518.jpg
• HospitalRun images: @ Cure.org
• Monolith: Expo Murten: https://commons.wikimedia.org/wiki/File:
20020719_Expo_Murten_10.JPG

More Related Content

What's hot

UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy KaluUX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Antwerp Meetup
 
Admissions Brain Dump
Admissions Brain DumpAdmissions Brain Dump
Admissions Brain Dump
Dave Olsen
 
Experiencing a FabLab
Experiencing a FabLabExperiencing a FabLab
Experiencing a FabLab
Martina F. Ferracane
 
Implementing Brand Patterns
Implementing Brand PatternsImplementing Brand Patterns
Implementing Brand Patterns
Dave Olsen
 
Interactive and Transmedia Storytelling [Day 1]
Interactive and Transmedia Storytelling [Day 1]Interactive and Transmedia Storytelling [Day 1]
Interactive and Transmedia Storytelling [Day 1]
Università degli Studi di Genova
 
Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)
Andrea Volpini
 
Socialmediastenden
SocialmediastendenSocialmediastenden
Socialmediastenden
Sascha Funk
 
Rp2-2015 - technology driven macro trends in marketing space
Rp2-2015 -  technology driven macro trends in marketing space Rp2-2015 -  technology driven macro trends in marketing space
Rp2-2015 - technology driven macro trends in marketing space
Ravi Pal
 
Informed Design - Color by Numbers
Informed Design - Color by NumbersInformed Design - Color by Numbers
Informed Design - Color by Numbers
Ian Wilson
 
Rp2-2015-Interface & digital experiences
Rp2-2015-Interface & digital experiencesRp2-2015-Interface & digital experiences
Rp2-2015-Interface & digital experiences
Ravi Pal
 
Agile and Scrum Methodology
Agile and Scrum MethodologyAgile and Scrum Methodology
Agile and Scrum Methodology
Kan Ouivirach, Ph.D.
 
Rp2-2015-technology trends enriching consumer experience
Rp2-2015-technology trends enriching consumer experienceRp2-2015-technology trends enriching consumer experience
Rp2-2015-technology trends enriching consumer experience
Ravi Pal
 
Lessons learned in business
Lessons learned in businessLessons learned in business
Lessons learned in business
Ian Wilson
 
If Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
If Fanon Had Facebook: Digital Postcolonial Knowledge and the RhizomeIf Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
If Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
Adeline Koh
 
WWV2015: Remco Bron_InBeacon_keynote a_22 jan
WWV2015: Remco Bron_InBeacon_keynote a_22 janWWV2015: Remco Bron_InBeacon_keynote a_22 jan
WWV2015: Remco Bron_InBeacon_keynote a_22 jan
webwinkelvakdag
 
Semantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLiftSemantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLift
Andrea Volpini
 
Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化
Christina Lin
 
Rp2-2015 - Experience - Tools n Methods
Rp2-2015 - Experience - Tools n MethodsRp2-2015 - Experience - Tools n Methods
Rp2-2015 - Experience - Tools n Methods
Ravi Pal
 
Feels.js – Growth, Emotions And Success In Tech
Feels.js – Growth, Emotions And Success In TechFeels.js – Growth, Emotions And Success In Tech
Feels.js – Growth, Emotions And Success In Tech
FITC
 
Mobile Resources Use in a Distance Learning Population
Mobile Resources Use in a Distance Learning PopulationMobile Resources Use in a Distance Learning Population
Mobile Resources Use in a Distance Learning Population
Billie Anne Gebb
 

What's hot (20)

UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy KaluUX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
UX Beers May 2020: UX ethics: how to build inclusive products by Chimmy Kalu
 
Admissions Brain Dump
Admissions Brain DumpAdmissions Brain Dump
Admissions Brain Dump
 
Experiencing a FabLab
Experiencing a FabLabExperiencing a FabLab
Experiencing a FabLab
 
Implementing Brand Patterns
Implementing Brand PatternsImplementing Brand Patterns
Implementing Brand Patterns
 
Interactive and Transmedia Storytelling [Day 1]
Interactive and Transmedia Storytelling [Day 1]Interactive and Transmedia Storytelling [Day 1]
Interactive and Transmedia Storytelling [Day 1]
 
Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)
 
Socialmediastenden
SocialmediastendenSocialmediastenden
Socialmediastenden
 
Rp2-2015 - technology driven macro trends in marketing space
Rp2-2015 -  technology driven macro trends in marketing space Rp2-2015 -  technology driven macro trends in marketing space
Rp2-2015 - technology driven macro trends in marketing space
 
Informed Design - Color by Numbers
Informed Design - Color by NumbersInformed Design - Color by Numbers
Informed Design - Color by Numbers
 
Rp2-2015-Interface & digital experiences
Rp2-2015-Interface & digital experiencesRp2-2015-Interface & digital experiences
Rp2-2015-Interface & digital experiences
 
Agile and Scrum Methodology
Agile and Scrum MethodologyAgile and Scrum Methodology
Agile and Scrum Methodology
 
Rp2-2015-technology trends enriching consumer experience
Rp2-2015-technology trends enriching consumer experienceRp2-2015-technology trends enriching consumer experience
Rp2-2015-technology trends enriching consumer experience
 
Lessons learned in business
Lessons learned in businessLessons learned in business
Lessons learned in business
 
If Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
If Fanon Had Facebook: Digital Postcolonial Knowledge and the RhizomeIf Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
If Fanon Had Facebook: Digital Postcolonial Knowledge and the Rhizome
 
WWV2015: Remco Bron_InBeacon_keynote a_22 jan
WWV2015: Remco Bron_InBeacon_keynote a_22 janWWV2015: Remco Bron_InBeacon_keynote a_22 jan
WWV2015: Remco Bron_InBeacon_keynote a_22 jan
 
Semantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLiftSemantic SEO in the post Hummingbird Era and WordLift
Semantic SEO in the post Hummingbird Era and WordLift
 
Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化
 
Rp2-2015 - Experience - Tools n Methods
Rp2-2015 - Experience - Tools n MethodsRp2-2015 - Experience - Tools n Methods
Rp2-2015 - Experience - Tools n Methods
 
Feels.js – Growth, Emotions And Success In Tech
Feels.js – Growth, Emotions And Success In TechFeels.js – Growth, Emotions And Success In Tech
Feels.js – Growth, Emotions And Success In Tech
 
Mobile Resources Use in a Distance Learning Population
Mobile Resources Use in a Distance Learning PopulationMobile Resources Use in a Distance Learning Population
Mobile Resources Use in a Distance Learning Population
 

Similar to Offline-first: Making your app resilient to network failures

From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dots
Ronald Ashri
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the Dots
Ronald Ashri
 
The Digital Transformation: A New World Order
The Digital Transformation: A New World OrderThe Digital Transformation: A New World Order
The Digital Transformation: A New World Order
AMA Iowa (American Marketing Association Iowa Chapter)
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for Managers
Randy Connolly
 
Slip indholdet fri
Slip indholdet friSlip indholdet fri
Slip indholdet fri
Jonas Heide Smith
 
Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?
Richard McIntyre
 
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
Kate O'Neill
 
Delight Your Customers with Modern SEO
Delight Your Customers with Modern SEODelight Your Customers with Modern SEO
Delight Your Customers with Modern SEO
Charlotte Han
 
The Road to QA
The Road to QAThe Road to QA
The Road to QA
Benjamin Bischoff
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
Codemotion
 
Social Media, Keeping up to date, Pure and more : The Leiden talk
Social Media, Keeping up to date, Pure and more  : The Leiden talkSocial Media, Keeping up to date, Pure and more  : The Leiden talk
Social Media, Keeping up to date, Pure and more : The Leiden talk
Guus van den Brekel
 
Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!
Chris Snook
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of Speed
Ilia Idakiev
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@Pinterest
Suman Karumuri
 
Design for Startups
Design for StartupsDesign for Startups
Design for Startups
Pek Pongpaet
 
CIA For WordPress Developers
CIA For WordPress DevelopersCIA For WordPress Developers
CIA For WordPress Developers
David Brumbaugh
 
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web DesignMaking Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Jenny Magic
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT career
John Mark Troyer
 
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS SummitGain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Amazon Web Services
 
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS SummitCanary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Amazon Web Services
 

Similar to Offline-first: Making your app resilient to network failures (20)

From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dots
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the Dots
 
The Digital Transformation: A New World Order
The Digital Transformation: A New World OrderThe Digital Transformation: A New World Order
The Digital Transformation: A New World Order
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for Managers
 
Slip indholdet fri
Slip indholdet friSlip indholdet fri
Slip indholdet fri
 
Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?
 
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
#Winning at Instagram, or How to Learn to Stop Worrying and Love the Algorithm
 
Delight Your Customers with Modern SEO
Delight Your Customers with Modern SEODelight Your Customers with Modern SEO
Delight Your Customers with Modern SEO
 
The Road to QA
The Road to QAThe Road to QA
The Road to QA
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
 
Social Media, Keeping up to date, Pure and more : The Leiden talk
Social Media, Keeping up to date, Pure and more  : The Leiden talkSocial Media, Keeping up to date, Pure and more  : The Leiden talk
Social Media, Keeping up to date, Pure and more : The Leiden talk
 
Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!Elevated.com's 2018 General Capabilities Deck-We are growing!!
Elevated.com's 2018 General Capabilities Deck-We are growing!!
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of Speed
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@Pinterest
 
Design for Startups
Design for StartupsDesign for Startups
Design for Startups
 
CIA For WordPress Developers
CIA For WordPress DevelopersCIA For WordPress Developers
CIA For WordPress Developers
 
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web DesignMaking Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
Making Peace: Resolving the Content/ UX Tug-of-War in Responsive Web Design
 
Architecting your IT career
Architecting your IT careerArchitecting your IT career
Architecting your IT career
 
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS SummitGain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
Gain Maximum Visibility into Your Applications - DEM03 - Chicago AWS Summit
 
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS SummitCanary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
Canary Deployments on Amazon EKS with Istio - SRV305 - Chicago AWS Summit
 

More from Pedro Teixeira

Building Decentralised Realtime Collaborative Applications - Building Google ...
Building Decentralised Realtime Collaborative Applications - Building Google ...Building Decentralised Realtime Collaborative Applications - Building Google ...
Building Decentralised Realtime Collaborative Applications - Building Google ...
Pedro Teixeira
 
How to build a reliable checkout experience
How to build a reliable checkout experienceHow to build a reliable checkout experience
How to build a reliable checkout experience
Pedro Teixeira
 
How to build a reliable checkout experience
How to build a reliable checkout experienceHow to build a reliable checkout experience
How to build a reliable checkout experience
Pedro Teixeira
 
Document-Driven transactions
Document-Driven transactionsDocument-Driven transactions
Document-Driven transactions
Pedro Teixeira
 
Node Anti-Patterns and Bad Practices
Node Anti-Patterns and Bad PracticesNode Anti-Patterns and Bad Practices
Node Anti-Patterns and Bad Practices
Pedro Teixeira
 
Node.js a-deep-dive 2-final
Node.js a-deep-dive 2-finalNode.js a-deep-dive 2-final
Node.js a-deep-dive 2-final
Pedro Teixeira
 

More from Pedro Teixeira (6)

Building Decentralised Realtime Collaborative Applications - Building Google ...
Building Decentralised Realtime Collaborative Applications - Building Google ...Building Decentralised Realtime Collaborative Applications - Building Google ...
Building Decentralised Realtime Collaborative Applications - Building Google ...
 
How to build a reliable checkout experience
How to build a reliable checkout experienceHow to build a reliable checkout experience
How to build a reliable checkout experience
 
How to build a reliable checkout experience
How to build a reliable checkout experienceHow to build a reliable checkout experience
How to build a reliable checkout experience
 
Document-Driven transactions
Document-Driven transactionsDocument-Driven transactions
Document-Driven transactions
 
Node Anti-Patterns and Bad Practices
Node Anti-Patterns and Bad PracticesNode Anti-Patterns and Bad Practices
Node Anti-Patterns and Bad Practices
 
Node.js a-deep-dive 2-final
Node.js a-deep-dive 2-finalNode.js a-deep-dive 2-final
Node.js a-deep-dive 2-final
 

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 

Offline-first: Making your app resilient to network failures

  • 1. M A K I N G Y O U R A P P R E S I L I E N T T O N E T W O R K FA I L U R E S O F F L I N E - F I R S T
  • 2. W H O A M I ?
  • 3.
  • 4. M A K I N G Y O U R A P P R E S I L I E N T T O N E T W O R K FA I L U R E S O F F L I N E - F I R S T
  • 5. M O B I L E W O R L D W E L I V E I N A N I N C R E A S I N G LY
  • 6.
  • 7. B E I N G O F F L I N E I S A G I V E N , N O T A N E X C E P T I O N .
  • 8. H O W C A N A P P L I C AT I O N D E V E L O P E R S H A N D L E T H I S ?
  • 9. N O T M Y P R O B L E M
  • 10. N O T I F Y T H E U S E R E R R O R H A N D L I N G
  • 11. H A N D L E I T C A S E B Y C A S E
  • 12.
  • 13. O F F L I N E - F I R S T D E V E L O P M E N T
  • 14. S E R V I C E W O R K E R S “A service worker is a script that your browser runs in the background, separate from a web page, opening the door to features that don't need a web page or user interaction.”
  • 15. S E R V I C E W O R K E R S “Using service worker you can hijack connections, fabricate, and filter responses. Powerful stuff.” https://developers.google.com/web/fundamentals/ getting-started/primers/service-workers
  • 16. S E R V I C E W O R K E R S I’m not here to talk about Service Workers..
  • 17. D ATA S Y N C I ’ M H E R E T O TA L K A B O U T
  • 18. C O U C H D B
  • 19. F E AT U R E S • Document database • Versions • Changes Feed • Sync
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. S O M E O P E N - S O U R C E • POUCH-CLERK • https://github.com/pgte/pouch-clerk • Example app • https://github.com/pgte/pouch-clerk-example-app
  • 35. D E M O T I M E !
  • 36. TA K E - A WAY S • Offline is a given, not an exception • You should not handle networking errors case-by-case • Embrace offline-first techniques • Sync is your friend
  • 37. T H A N K Y O U ! 
 O N S L I D E S H A R E : bit.ly/2pkU4pQ
  • 38. Q U E S T I O N S ?
  • 39. C R E D I T S • Hans Kylberg - https://www.flickr.com/photos/visulogik/1619008375 • Vodafone UK slide: Jake Archibald, Google I/O • Machinery: Franz Zajizek, Astronomical Clock Machinery - https:// commons.wikimedia.org/wiki/File:Vienna_- _Vintage_Franz_Zajizek_Astronomical_Clock_machinery_-_0518.jpg • HospitalRun images: @ Cure.org • Monolith: Expo Murten: https://commons.wikimedia.org/wiki/File: 20020719_Expo_Murten_10.JPG