The Architecture of 
an API Platform 
Johannes Lundberg 
@johannesl
”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
The essence of an API 
Turning traditional complexity 
into programatic simplicity.
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 
Data 
Vendor 
Services 
Machinery 
Data 
Machinery 
Data 
Data 
Vendor Machinery 
Services
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..
The golden rule of API design 
When in doubt! 
Leave it out!
XML vs JSON 
Servers vs IaaS! 
PUSH vs POLL 
OAuth vs Basic! 
Consistency vs Reliability! 
RabbitMQ vs ZeroMQ
Something like this.. 
Consumer 
Consumer 
API 
FAILOVER 
LOAD BALANCER 
WEB SERVERS 
MESSAGE BUS 
WORKERS 
DATABASES 
BILLING 
Vendor 
Services 
Machinery 
BACKUP! 
DATA! 
CENTER
Do versioning. 
Use JSON. 
Talk to your API consumers. 
Select vendors carefully. 
Building APIs! 
should be complex
46elks 
Part 2 - platform engine in-depth 
Voice, SMS and MMS! 
in one This document is confidential 
Unauthorized easy use prohibited 
API
Customer 
applications 
Simple API 
Customers, Employees, 
Event audience, Machines 
SMS, MMS 
Phone calls 
platform engine
THE INTERNET 
Developer Applications 
PHP, C#, node.JS etc 
REST API 
HTTPS, JSON 
Basic auth 
TELCO NETWORKS 
nginx w/ SSL 
HTTP(S) 
callbacks 
ABC 
Conceptual module interaction 
HTTP 
Endpoint 
XYZ 
Developer Applications 
PHP, C#, node.JS etc 
Developer Application 
PHP, C#, node.JS etc 
DB XYZ 
Carrier endpoint 
Complex 
protocols 
Nice software 
! 
elkserver 
main source code 
! 
Python + gevent 
DEF 
Internal API 
Processing 
Something 
Module X 
ABC 
123 
46elks
The Architecture of 
an API Platform 
Johannes Lundberg 
@johannesl

The Architecture of an API Platform

  • 1.
    The Architecture of an API Platform Johannes Lundberg @johannesl
  • 2.
    ”Self-taught developer. 46elksco-founder. Strongly believe it's possible to combine powerful features with ease of use. Enjoys vegetarian food and world travel.” @johannesl
  • 3.
    The essence ofan API Turning traditional complexity into programatic simplicity.
  • 4.
    Two kinds ofAPIs DATA! ACCESS SIDE! EFFECTS - Cloud storage - Online payment - Infrastructure as a service - Cloud communications - Open data - Twitter & Facebook - Public transportation - Partner APIs
  • 5.
    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
  • 6.
    DATA ACCESS -Self contained Consumer API Backend ! Data
  • 7.
    DATA ACCESS -Self contained Consumer API Backend ! Vendor Data
  • 8.
    SIDE EFFECTS -Self contained Consumer API Backend ! Machinery
  • 9.
    SIDE EFFECTS -Vendor dependent Consumer API Backend ! Vendor Services
  • 10.
    REALITY? Consumer API Backend ! Vendor Services Machinery Data
  • 11.
    REALITY?? Consumer API Backend ! ! ! ! ! Vendor Data Vendor Services Machinery Data Machinery Data Data Vendor Machinery Services
  • 12.
    What’s the main features of your API?
  • 13.
    We all know development costs.. ! Prototype first!
  • 14.
    Prototype first! Yes,with customers. Consumer API
  • 15.
    1. Your APIshould work. 2. According to specs. ! 3. Maintainability.. 4. Scalability.. 5. Feature creep..
  • 16.
    The golden ruleof API design When in doubt! Leave it out!
  • 17.
    XML vs JSON Servers vs IaaS! PUSH vs POLL OAuth vs Basic! Consistency vs Reliability! RabbitMQ vs ZeroMQ
  • 18.
    Something like this.. Consumer Consumer API FAILOVER LOAD BALANCER WEB SERVERS MESSAGE BUS WORKERS DATABASES BILLING Vendor Services Machinery BACKUP! DATA! CENTER
  • 19.
    Do versioning. UseJSON. Talk to your API consumers. Select vendors carefully. Building APIs! should be complex
  • 20.
    46elks Part 2- platform engine in-depth Voice, SMS and MMS! in one This document is confidential Unauthorized easy use prohibited API
  • 21.
    Customer applications SimpleAPI Customers, Employees, Event audience, Machines SMS, MMS Phone calls platform engine
  • 22.
    THE INTERNET DeveloperApplications PHP, C#, node.JS etc REST API HTTPS, JSON Basic auth TELCO NETWORKS nginx w/ SSL HTTP(S) callbacks ABC Conceptual module interaction HTTP Endpoint XYZ Developer Applications PHP, C#, node.JS etc Developer Application PHP, C#, node.JS etc DB XYZ Carrier endpoint Complex protocols Nice software ! elkserver main source code ! Python + gevent DEF Internal API Processing Something Module X ABC 123 46elks
  • 23.
    The Architecture of an API Platform Johannes Lundberg @johannesl