the architecture of an api platform
DESCRIPTION
My presentation from Nordic APIs 2014 in Stockholm, Sweden. How can the architecture of one API platform look like? How can you break down things to make this challenge easier?TRANSCRIPT
The Architecture of an API Platform
@johanneslJohannes Lundberg
”Self-taught developer. 46elks co-founder. Strongly believe it's possible to combine
powerful features with ease of use. Enjoys vegetarian food and world travel.”
@johannesl
Turning traditional complexity into programatic simplicity.
The essence of an API
Two kinds of APIs
DATA!ACCESS
SIDE!EFFECTS
- Cloud storage - Online payment - Infrastructure as a service - Cloud communications
- Open data - Twitter & Facebook - Public transportation - Partner APIs
Self contained
DATA!ACCESS
SIDE!EFFECTS
DATA!ACCESS
SIDE!EFFECTS
Vendor dependent
- Open data - Twitter & FB - TV channels
- Cloud storage - Paypal - Printing
- Payments - Travel tickets - Telephony & SMS
- Transportation - Social media - Open data
DATA ACCESS - Self contained
Consumer
API
Backend !
Data
DATA ACCESS - Self contained
Consumer
API
Backend !
Vendor Data
SIDE EFFECTS - Self contained
Consumer
API
Backend ! Machinery
SIDE EFFECTS - Vendor dependent
Consumer
API
Backend !
Vendor Services
REALITY?
Consumer
API
Backend !
Vendor Services Machinery
Data
REALITY??Consumer
API
Backend !!!!!
Vendor Services
Machinery
DataMachinery
MachineryVendor Services
Data
Data
Vendor Data
What’s the main features of your API?
We all know development costs..
!
Prototype first!
Prototype first! Yes, with customers.
Consumer
API
1. Your API should work. 2. According to specs. !
3. Maintainability.. 4. Scalability.. 5. Feature creep..
When in doubt!Leave it out!
The golden rule of API design
XML vs JSON Servers vs IaaS!PUSH vs POLL OAuth vs Basic!
Consistency vs Reliability!RabbitMQ vs ZeroMQ
Something like this..Consumer
API
Consumer
LOAD BALANCER
FAILOVER
WORKERS
DATABASES
BILLING
WEB SERVERS
MESSAGE BUS
Vendor Services Machinery
BACKUP!DATA!
CENTER
Do versioning. Use JSON. Talk to your API consumers. Select vendors carefully.
Building APIs!should be complex
Part 2 - platform engine in-depth
46elks
This document is confidential Unauthorized use prohibited
Voice, SMS and MMS!in one easy API
Simple API
Customer applications
platform engine
SMS, MMS Phone calls
Customers, Employees, Event audience, Machines
THE INTERNETDeveloper Applications
PHP, C#, node.JS etc
REST API HTTPS, JSON
Basic auth
TELCO NETWORKS
nginx w/ SSL
Conceptual module interaction
HTTP(S) callbacks
HTTP
Endpoint
XYZ
Developer Applications PHP, C#, node.JS etcDeveloper Application PHP, C#, node.JS etc
DB XYZ
Carrier endpoint
Complex protocols
Nice software
!elkserver
main source code !
Python + gevent
DEF
ABC
Internal API
Processing
Something
Module X
ABC 123
46elks
The Architecture of an API Platform
@johanneslJohannes Lundberg