Simon Wood
@hpoom
Holiday Extras
Image by Barney Livingston - Flickr
Slide 3
Slide 3 text
@hpoom
Slide 4
Slide 4 text
@hpoom
Over 40m visits
and 500k bookings
in the last 5 years
Give £20m revenue
to hotels each year
Slide 5
Slide 5 text
@hpoom
Slide 6
Slide 6 text
Because of APIs I can tell you...
Yesterday
I walked
6191 steps
FitBit API
The music
I listen to
most is
Radiohead
Last.fm API
It is
currently
13ºC in
New York
Yahoo Weather API
The Brewery is
located at
lat: 51.520475
lon: -0.091471
Google Maps API
@hpoom
Slide 7
Slide 7 text
The Future is mobile
The Future is social
The Future is cloud
@hpoom
Slide 8
Slide 8 text
The Future is mobile
The Future is social
The Future is cloud
The Future
is APIs
@hpoom
Slide 9
Slide 9 text
APIs
Mobile
Social Cloud
@hpoom Diagram by Sam Ramji - http://bit.ly/biz-apis
Slide 10
Slide 10 text
What I am going to cover
The Problem
Solutions - Good and Bad
Considerations
Technology
How you can do this too
@hpoom
Slide 11
Slide 11 text
LET’S TALK ABOUT
THE PROBLEM
@hpoom
Slide 12
Slide 12 text
Multiple
sources
of data
@hpoom
Slide 13
Slide 13 text
@hpoom
Slide 14
Slide 14 text
Multiple
consumers
of data
@hpoom
Slide 15
Slide 15 text
Shortbreaks traffic
breakdown 18 months
@hpoom
Desktop Tablet Mobile
Slide 16
Slide 16 text
@hpoom
Slide 17
Slide 17 text
De couple
@hpoom
Slide 18
Slide 18 text
Hide
legacy
@hpoom
Slide 19
Slide 19 text
Speed!
@hpoom
Slide 20
Slide 20 text
Source: Strangeloop Networks Case Study
Amazon
100
milliseconds
revenue
1%
Mozilla
2.2
seconds
downloads
60m
per year
@hpoom
Slide 21
Slide 21 text
Scaleability
@hpoom
Slide 22
Slide 22 text
Be efficient
with resource
@hpoom
Slide 23
Slide 23 text
SO WHAT IS THE
THE SOLUTION
@hpoom
Slide 24
Slide 24 text
The
Unified
Bit
@hpoom
Slide 25
Slide 25 text
Website
Application
Layer
Legacy
Reservation System
@hpoom
Slide 26
Slide 26 text
Website
Application
Layer & API
Legacy
Reservation System
Affiliates
@hpoom
Slide 27
Slide 27 text
Website
Application
Layer & API
Legacy
Reservation System
Affiliates
Hotel System Ticket System
@hpoom
Slide 28
Slide 28 text
Website
Application
Layer & API
Legacy
Reservation System
Affiliates
Hotel System Ticket System
@hpoom
Slide 29
Slide 29 text
Unified API
Website Mobile App Affiliates Smart TV
Hotels Tickets Transport Food
Multiple consumers of data
Multiple sources of data
@hpoom
Slide 30
Slide 30 text
Proxy
@hpoom
Slide 31
Slide 31 text
Website
Application
Layer
Legacy
Reservation System
@hpoom
Slide 32
Slide 32 text
Website
Application
Layer
Unified API
Legacy
Reservation System
New System
Proxy
@hpoom
Slide 33
Slide 33 text
Hierarchical
@hpoom
Slide 34
Slide 34 text
Website
Application
Layer
Unified API
Legacy
Reservation System
New System
@hpoom
Slide 35
Slide 35 text
Website
Application
Layer
Unified API
Product API Content API
Price &
Availability
Name
Star Rating
Facilities
@hpoom
Slide 36
Slide 36 text
Website
Application
Layer
Unified API
Product API Content API
Hotels Tickets Transport
@hpoom
Slide 37
Slide 37 text
Website
Application
Layer
Unified API
Product API Content API
Hotels Tickets Transport
Legacy New Affiliate
@hpoom
Slide 38
Slide 38 text
Micro-service
architecture
Idea by Fred George - http://bit.ly/fred-george
@hpoom
Slide 39
Slide 39 text
Traditional
Enterprise
Architecture
Micro
Service
Architecture
Diagram by James Hughes - http://bit.ly/micro-service
@hpoom
Slide 40
Slide 40 text
Website
Application
Layer
Unified API
Content API
@hpoom
Slide 41
Slide 41 text
Authentication
@hpoom
Slide 42
Slide 42 text
Unified API
Website Mobile App Affiliates Smart TV
Hotels Tickets Transport Food
Auth
Use
OAuth 2.0
@hpoom
Slide 43
Slide 43 text
Standardise
your payloads
@hpoom
Slide 44
Slide 44 text
PUBLIC SERVICE
ANNOUNCEMENT
@hpoom
This is THE correct way
to write numeric dates
2013-10-25
Source XKCD - http://bit.ly/iso-date
Unified API
Website Mobile App Affiliates Smart TV
Hotels Tickets Transport Food
Async
Total request time is only as
slow as the slowest provider
1.2s 0.8s
1.1s 0.6s
@hpoom
Slide 48
Slide 48 text
Unified API
Website Mobile App Affiliates Smart TV
Hotels Tickets Transport Food
Cache
Cache Cache Cache Cache
If we hit the
top cache
respond in
0.04s
@hpoom
Slide 49
Slide 49 text
In summary
Solutions
Unified API
Standard Payloads
Micro Services
Proxy
Cache & Async
Hierarchical
Problems
Multi Data Sources
Multi Consumers
Decouple
Hide Legacy
Speed
Scaleability
@hpoom
Slide 50
Slide 50 text
SOME
CONSIDERATIONS
@hpoom
Slide 51
Slide 51 text
Open &
Commercial
@hpoom
Slide 52
Slide 52 text
The right
way to
rate limit
@hpoom
Slide 53
Slide 53 text
Unlimited
pools of
talent
@hpoom Chris Jason, ESPN - http://bit.ly/espnapi
Slide 54
Slide 54 text
Debugging
& Logs
@hpoom
Slide 55
Slide 55 text
Our log data in loggly
@hpoom
Slide 56
Slide 56 text
300k
unique
payloads
3GB
JSON
logged daily
@hpoom
Slide 57
Slide 57 text
WHAT
TECHNOLOGY?
@hpoom
Slide 58
Slide 58 text
We use...
@hpoom
express
web application
framework for
node
Slide 59
Slide 59 text
Yesterday’s
Standard
SOAP
XML
Today’s
Standard
REST
JSON
Keep it simple!
@hpoom
Slide 60
Slide 60 text
@hpoom
Slide 61
Slide 61 text
Language
does not
matter
@hpoom
Slide 62
Slide 62 text
WHERE TO
START?
@hpoom
Slide 63
Slide 63 text
What do
you hate?
@hpoom
Slide 64
Slide 64 text
Where are
you going?
@hpoom
Slide 65
Slide 65 text
Which public
APIs could
you
consume?
@hpoom
Slide 66
Slide 66 text
Who needs
access?
@hpoom
Slide 67
Slide 67 text
Good
docs
@hpoom Pusher Blog - http://bit.ly/devapidocs
Slide 68
Slide 68 text
TAKE
AWAYS
@hpoom
Slide 69
Slide 69 text
Consume your
own APIs
@hpoom
uses to build
Source Zach Holman - http://bit.ly/githubdogfood
uses to build
Slide 70
Slide 70 text
@hpoom
“You wouldn't really
think that an online
bookstore needs to be
an extensible,
programmable
platform. Would you?”
Steve Yegge
Source Steve Yegge - http://bit.ly/yegge