SlideShare a Scribd company logo
When RESTful may be
considered harmful
Copyright Push Technology 2015
Ross Garrett @gssor
We make the Internet work for the mobile-
obsessed, app-loving, everything-connected world.
4
Copyright Push Technology 2015
•  We’re defining the market for must-have “Internet Messaging” technology
•  Our software gives business critical apps a performance edge
•  It’s delivered in the way that works for you
•  Founded 2006; recognized expertise in delivering data at scale and speed
•  European HQ in London | Americas HQ in San Jose, CASelected Customers
Who we are
5
Selected Partners
RESTful may be harmful, eh?
Copyright Push Technology 2015
Yeah…
Here are the Top 10 reasons why
RESTful may be considered
harmful
You won’t believe number 7!!
8
Copyright Push Technology 2015
What do we mean by RESTful?
9
Copyright Push Technology 201510
Copyright Push Technology 2015
Level 2 - HTTP Verbs
http://martinfowler.com/articles/richardsonMaturityModel.html
Copyright Push Technology 2015
An example Level 2 API
http://blog.sgo.to/2014/04/what-your-api-would-look-like-as-webpage.html
Copyright Push Technology 2015
Looking at this as a Web Page
http://blog.sgo.to/2014/04/what-your-api-would-look-like-as-webpage.html
Copyright Push Technology 2015
Looking at this as a Web Page
http://blog.sgo.to/2014/04/what-your-api-would-look-like-as-webpage.html
Copyright Push Technology 2015
Most Web APIs haven’t reached Level 3 –
The Glory of REST
15
Copyright Push Technology 2015
What constitutes “harmful”?
•  Poor end-user experience
•  Insufficient scaling capacity
•  Inappropriate implementation / usage
Copyright Push Technology 2015
Poor User Experience
•  This usually means slow / unreliable apps
•  Often caused by the network
17
Copyright Push Technology 2015
#1 Data redundancy
{	
				uid	:	1234567890,	
				title	:	“Something”,	
				db_key	:	“some_thing_item”,	
				modified_date	:	“13-06-1991”,	
				…	
}
Copyright Push Technology 2015
#1 Data redundancy
{	
				uid	:	1234567890,	
				title	:	“Something	else”,	
				db_key	:	“some_thing_item”,	
				modified_date	:	“06-08-2015”,	
				…	
}	
It’s like the Internet is running with Debug turned on
Copyright Push Technology 2015
Insufficient scaling capability
•  Growing from 1000 users to 1,000,000 users
•  Should we simply add CPUs, NICs, etc?
20
Copyright Push Technology 2015
#2 Data delivery
Your clients
Copyright Push Technology 2015
#2 Data delivery
•  How many requests do you service for data that hasn’t changed?
•  Guess what? HTTP 304 is a thing
•  Everything has a cost; only pay for what you need
Copyright Push Technology 2015
Inappropriate Implementation
•  REST APIs often mimic backend systems & operations
•  If one system needs to notify another about an event - do they really
need to exist at the same time?
23
Copyright Push Technology 2015
#3 Coupling
24
Copyright Push Technology 2015
#3 Coupling
•  Message-driven distributed architectures prove to be much more
robust and fault-tolerant.
•  Producers and consumers are truly independent.
•  Scalability is easier to achieve, and we can distribute messages to
multiple systems at a time.
Copyright Push Technology 2015
Copyright Push Technology 2015
The Internet…
•  Unknown, uncontrolled resource
•  It will let you down
–  Insufficient bandwidth
–  Inconsistent bandwidth
–  High latency
–  Loss of connectivity on a regular basis
•  Be sympathetic to realities of the network
Copyright Push Technology 2015
The (mobile) Internet…
•  HTTP & TCP slow-start are usually not a good match for constantly
dropped connections
•  Network interface kills battery
•  Large responses + periodic polling = bad
Copyright Push Technology 2015
Solutions?
•  Avoid polling!
•  Avoid redundancies
•  Avoid multiple concurrent HTTP requests
Copyright Push Technology 2015
Think Reactive
30
http://www.reactivemanifesto.org
Copyright Push Technology 2015
The right fit
•  REST solves particular problems for a particular environment
•  Reactive apps almost demand streaming pub/sub messaging
–  Websockets!
•  Conceptual simplicity != best performance
Copyright Push Technology 2015
There is no “one size fits all” approach, think
strategically and critically about your architecture
choices
32
Copyright Push Technology 201533
Thanks!
Subscribe to our blogFollow us on Twitter Check out our whitepapers
@reappt
@push_technology
@gssor

More Related Content

Similar to When RESTful may be considered harmful

API Days Paris - When RESTful may be considered harmful
API Days Paris - When RESTful may be considered harmfulAPI Days Paris - When RESTful may be considered harmful
API Days Paris - When RESTful may be considered harmful
Ross Garrett
 
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
QuickBase, Inc.
 
Big data debunking some of the myths
Big data debunking some of the mythsBig data debunking some of the myths
Big data debunking some of the myths
Chris Swan
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2
 
Atlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQAtlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQ
ServiceRocket
 
CA Continuous Application Insight: Discovery, Insight, Automation for Paralle...
CA Continuous Application Insight: Discovery, Insight, Automation for Paralle...CA Continuous Application Insight: Discovery, Insight, Automation for Paralle...
CA Continuous Application Insight: Discovery, Insight, Automation for Paralle...
CA Technologies
 
Hewlett Packard Enterprise View on Going Big with API Management - Applicatio...
Hewlett Packard Enterprise View on Going Big with API Management - Applicatio...Hewlett Packard Enterprise View on Going Big with API Management - Applicatio...
Hewlett Packard Enterprise View on Going Big with API Management - Applicatio...
CA Technologies
 
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix WebinarFuture-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Impetus Technologies
 
Combining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIsCombining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIs
Brad Genereaux
 
Cloud Native in the US Federal Government by Jez Humble at #AgileIndia2019
Cloud Native in the US Federal Government by Jez Humble at #AgileIndia2019Cloud Native in the US Federal Government by Jez Humble at #AgileIndia2019
Cloud Native in the US Federal Government by Jez Humble at #AgileIndia2019
Agile India
 
APIdays Paris 2019 - API Gateway & Identity Providers, a Match Made in Micros...
APIdays Paris 2019 - API Gateway & Identity Providers, a Match Made in Micros...APIdays Paris 2019 - API Gateway & Identity Providers, a Match Made in Micros...
APIdays Paris 2019 - API Gateway & Identity Providers, a Match Made in Micros...
apidays
 
Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
All Things Open
 
Why Network and Endpoint Security Isn’t Enough
Why Network and Endpoint Security Isn’t EnoughWhy Network and Endpoint Security Isn’t Enough
Why Network and Endpoint Security Isn’t Enough
Imperva
 
It automation webinar presentation
It automation webinar presentationIt automation webinar presentation
It automation webinar presentation
Auxis Consulting & Outsourcing
 
It automation webinar presentation
It automation webinar presentation It automation webinar presentation
It automation webinar presentation
Auxis Consulting & Outsourcing
 
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays
 
To Open Banking and Beyond: Developing APIs that are Resilient to every new I...
To Open Banking and Beyond: Developing APIs that are Resilient to every new I...To Open Banking and Beyond: Developing APIs that are Resilient to every new I...
To Open Banking and Beyond: Developing APIs that are Resilient to every new I...
Curiosity Software Ireland
 
The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015
Eduardo Pelegri-Llopart
 
Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
All Things Open
 
Testing Mobile App Performance
Testing Mobile App PerformanceTesting Mobile App Performance
Testing Mobile App Performance
TechWell
 

Similar to When RESTful may be considered harmful (20)

API Days Paris - When RESTful may be considered harmful
API Days Paris - When RESTful may be considered harmfulAPI Days Paris - When RESTful may be considered harmful
API Days Paris - When RESTful may be considered harmful
 
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
Guiding Principles for the Low Code Revolution – Intuit QuickBase EMPOWER2015...
 
Big data debunking some of the myths
Big data debunking some of the mythsBig data debunking some of the myths
Big data debunking some of the myths
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Atlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQAtlassian Executive Business Forum - LinkedIn HQ
Atlassian Executive Business Forum - LinkedIn HQ
 
CA Continuous Application Insight: Discovery, Insight, Automation for Paralle...
CA Continuous Application Insight: Discovery, Insight, Automation for Paralle...CA Continuous Application Insight: Discovery, Insight, Automation for Paralle...
CA Continuous Application Insight: Discovery, Insight, Automation for Paralle...
 
Hewlett Packard Enterprise View on Going Big with API Management - Applicatio...
Hewlett Packard Enterprise View on Going Big with API Management - Applicatio...Hewlett Packard Enterprise View on Going Big with API Management - Applicatio...
Hewlett Packard Enterprise View on Going Big with API Management - Applicatio...
 
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix WebinarFuture-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
Future-Proof Your Streaming Analytics Architecture- StreamAnalytix Webinar
 
Combining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIsCombining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIs
 
Cloud Native in the US Federal Government by Jez Humble at #AgileIndia2019
Cloud Native in the US Federal Government by Jez Humble at #AgileIndia2019Cloud Native in the US Federal Government by Jez Humble at #AgileIndia2019
Cloud Native in the US Federal Government by Jez Humble at #AgileIndia2019
 
APIdays Paris 2019 - API Gateway & Identity Providers, a Match Made in Micros...
APIdays Paris 2019 - API Gateway & Identity Providers, a Match Made in Micros...APIdays Paris 2019 - API Gateway & Identity Providers, a Match Made in Micros...
APIdays Paris 2019 - API Gateway & Identity Providers, a Match Made in Micros...
 
Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
 
Why Network and Endpoint Security Isn’t Enough
Why Network and Endpoint Security Isn’t EnoughWhy Network and Endpoint Security Isn’t Enough
Why Network and Endpoint Security Isn’t Enough
 
It automation webinar presentation
It automation webinar presentationIt automation webinar presentation
It automation webinar presentation
 
It automation webinar presentation
It automation webinar presentation It automation webinar presentation
It automation webinar presentation
 
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
 
To Open Banking and Beyond: Developing APIs that are Resilient to every new I...
To Open Banking and Beyond: Developing APIs that are Resilient to every new I...To Open Banking and Beyond: Developing APIs that are Resilient to every new I...
To Open Banking and Beyond: Developing APIs that are Resilient to every new I...
 
The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015The impact of IOT - exchange cala - 2015
The impact of IOT - exchange cala - 2015
 
Building Reliability - The Realities of Observability
Building Reliability - The Realities of ObservabilityBuilding Reliability - The Realities of Observability
Building Reliability - The Realities of Observability
 
Testing Mobile App Performance
Testing Mobile App PerformanceTesting Mobile App Performance
Testing Mobile App Performance
 

More from Ross Garrett

Build Platforms not Products
Build Platforms not Products Build Platforms not Products
Build Platforms not Products
Ross Garrett
 
Dzone webinar : Making integration suck less
Dzone webinar : Making integration suck lessDzone webinar : Making integration suck less
Dzone webinar : Making integration suck less
Ross Garrett
 
Making Integration Suck Less
Making Integration Suck LessMaking Integration Suck Less
Making Integration Suck Less
Ross Garrett
 
The attention economy and the internet
The attention economy and the internetThe attention economy and the internet
The attention economy and the internet
Ross Garrett
 
Apps world 2014 - APIs A State of the Union
Apps world 2014 - APIs A State of the UnionApps world 2014 - APIs A State of the Union
Apps world 2014 - APIs A State of the Union
Ross Garrett
 
Is this "thing" connected?
Is this "thing" connected?Is this "thing" connected?
Is this "thing" connected?
Ross Garrett
 
Microservices under the microscope
Microservices under the microscopeMicroservices under the microscope
Microservices under the microscope
Ross Garrett
 
A Babel Fish from the Swamp of POX
A Babel Fish from the Swamp of POXA Babel Fish from the Swamp of POX
A Babel Fish from the Swamp of POX
Ross Garrett
 

More from Ross Garrett (8)

Build Platforms not Products
Build Platforms not Products Build Platforms not Products
Build Platforms not Products
 
Dzone webinar : Making integration suck less
Dzone webinar : Making integration suck lessDzone webinar : Making integration suck less
Dzone webinar : Making integration suck less
 
Making Integration Suck Less
Making Integration Suck LessMaking Integration Suck Less
Making Integration Suck Less
 
The attention economy and the internet
The attention economy and the internetThe attention economy and the internet
The attention economy and the internet
 
Apps world 2014 - APIs A State of the Union
Apps world 2014 - APIs A State of the UnionApps world 2014 - APIs A State of the Union
Apps world 2014 - APIs A State of the Union
 
Is this "thing" connected?
Is this "thing" connected?Is this "thing" connected?
Is this "thing" connected?
 
Microservices under the microscope
Microservices under the microscopeMicroservices under the microscope
Microservices under the microscope
 
A Babel Fish from the Swamp of POX
A Babel Fish from the Swamp of POXA Babel Fish from the Swamp of POX
A Babel Fish from the Swamp of POX
 

Recently uploaded

一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
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
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
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
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
NishanthaBulumulla1
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 

Recently uploaded (20)

一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
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
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
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
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 

When RESTful may be considered harmful

  • 1.
  • 2. When RESTful may be considered harmful Copyright Push Technology 2015 Ross Garrett @gssor
  • 3. We make the Internet work for the mobile- obsessed, app-loving, everything-connected world.
  • 4. 4
  • 5. Copyright Push Technology 2015 •  We’re defining the market for must-have “Internet Messaging” technology •  Our software gives business critical apps a performance edge •  It’s delivered in the way that works for you •  Founded 2006; recognized expertise in delivering data at scale and speed •  European HQ in London | Americas HQ in San Jose, CASelected Customers Who we are 5 Selected Partners
  • 6. RESTful may be harmful, eh?
  • 7. Copyright Push Technology 2015 Yeah… Here are the Top 10 reasons why RESTful may be considered harmful You won’t believe number 7!!
  • 8. 8
  • 9. Copyright Push Technology 2015 What do we mean by RESTful? 9
  • 11. Copyright Push Technology 2015 Level 2 - HTTP Verbs http://martinfowler.com/articles/richardsonMaturityModel.html
  • 12. Copyright Push Technology 2015 An example Level 2 API http://blog.sgo.to/2014/04/what-your-api-would-look-like-as-webpage.html
  • 13. Copyright Push Technology 2015 Looking at this as a Web Page http://blog.sgo.to/2014/04/what-your-api-would-look-like-as-webpage.html
  • 14. Copyright Push Technology 2015 Looking at this as a Web Page http://blog.sgo.to/2014/04/what-your-api-would-look-like-as-webpage.html
  • 15. Copyright Push Technology 2015 Most Web APIs haven’t reached Level 3 – The Glory of REST 15
  • 16. Copyright Push Technology 2015 What constitutes “harmful”? •  Poor end-user experience •  Insufficient scaling capacity •  Inappropriate implementation / usage
  • 17. Copyright Push Technology 2015 Poor User Experience •  This usually means slow / unreliable apps •  Often caused by the network 17
  • 18. Copyright Push Technology 2015 #1 Data redundancy { uid : 1234567890, title : “Something”, db_key : “some_thing_item”, modified_date : “13-06-1991”, … }
  • 19. Copyright Push Technology 2015 #1 Data redundancy { uid : 1234567890, title : “Something else”, db_key : “some_thing_item”, modified_date : “06-08-2015”, … } It’s like the Internet is running with Debug turned on
  • 20. Copyright Push Technology 2015 Insufficient scaling capability •  Growing from 1000 users to 1,000,000 users •  Should we simply add CPUs, NICs, etc? 20
  • 21. Copyright Push Technology 2015 #2 Data delivery Your clients
  • 22. Copyright Push Technology 2015 #2 Data delivery •  How many requests do you service for data that hasn’t changed? •  Guess what? HTTP 304 is a thing •  Everything has a cost; only pay for what you need
  • 23. Copyright Push Technology 2015 Inappropriate Implementation •  REST APIs often mimic backend systems & operations •  If one system needs to notify another about an event - do they really need to exist at the same time? 23
  • 24. Copyright Push Technology 2015 #3 Coupling 24
  • 25. Copyright Push Technology 2015 #3 Coupling •  Message-driven distributed architectures prove to be much more robust and fault-tolerant. •  Producers and consumers are truly independent. •  Scalability is easier to achieve, and we can distribute messages to multiple systems at a time.
  • 27. Copyright Push Technology 2015 The Internet… •  Unknown, uncontrolled resource •  It will let you down –  Insufficient bandwidth –  Inconsistent bandwidth –  High latency –  Loss of connectivity on a regular basis •  Be sympathetic to realities of the network
  • 28. Copyright Push Technology 2015 The (mobile) Internet… •  HTTP & TCP slow-start are usually not a good match for constantly dropped connections •  Network interface kills battery •  Large responses + periodic polling = bad
  • 29. Copyright Push Technology 2015 Solutions? •  Avoid polling! •  Avoid redundancies •  Avoid multiple concurrent HTTP requests
  • 30. Copyright Push Technology 2015 Think Reactive 30 http://www.reactivemanifesto.org
  • 31. Copyright Push Technology 2015 The right fit •  REST solves particular problems for a particular environment •  Reactive apps almost demand streaming pub/sub messaging –  Websockets! •  Conceptual simplicity != best performance
  • 32. Copyright Push Technology 2015 There is no “one size fits all” approach, think strategically and critically about your architecture choices 32
  • 34. Thanks! Subscribe to our blogFollow us on Twitter Check out our whitepapers @reappt @push_technology @gssor