the architecture of an api platform

23
The Architecture of an API Platform @johannesl Johannes Lundberg

Upload: johannes-lundberg

Post on 19-Jun-2015

462 views

Category:

Internet


7 download

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

Page 1: The Architecture of an API Platform

The Architecture of an API Platform

@johanneslJohannes Lundberg

Page 2: The Architecture of an API Platform

”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

Page 3: The Architecture of an API Platform

Turning traditional complexity into programatic simplicity.

The essence of an API

Page 4: The Architecture of an API Platform

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

Page 5: The Architecture of an API Platform

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

Page 6: The Architecture of an API Platform

DATA ACCESS - Self contained

Consumer

API

Backend !

Data

Page 7: The Architecture of an API Platform

DATA ACCESS - Self contained

Consumer

API

Backend !

Vendor Data

Page 8: The Architecture of an API Platform

SIDE EFFECTS - Self contained

Consumer

API

Backend ! Machinery

Page 9: The Architecture of an API Platform

SIDE EFFECTS - Vendor dependent

Consumer

API

Backend !

Vendor Services

Page 10: The Architecture of an API Platform

REALITY?

Consumer

API

Backend !

Vendor Services Machinery

Data

Page 11: The Architecture of an API Platform

REALITY??Consumer

API

Backend !!!!!

Vendor Services

Machinery

DataMachinery

MachineryVendor Services

Data

Data

Vendor Data

Page 12: The Architecture of an API Platform

What’s the main features of your API?

Page 13: The Architecture of an API Platform

We all know development costs..

!

Prototype first!

Page 14: The Architecture of an API Platform

Prototype first! Yes, with customers.

Consumer

API

Page 15: The Architecture of an API Platform

1. Your API should work. 2. According to specs. !

3. Maintainability.. 4. Scalability.. 5. Feature creep..

Page 16: The Architecture of an API Platform

When in doubt!Leave it out!

The golden rule of API design

Page 17: The Architecture of an API Platform

XML vs JSON Servers vs IaaS!PUSH vs POLL OAuth vs Basic!

Consistency vs Reliability!RabbitMQ vs ZeroMQ

Page 18: The Architecture of an API Platform

Something like this..Consumer

API

Consumer

LOAD BALANCER

FAILOVER

WORKERS

DATABASES

BILLING

WEB SERVERS

MESSAGE BUS

Vendor Services Machinery

BACKUP!DATA!

CENTER

Page 19: The Architecture of an API Platform

Do versioning. Use JSON. Talk to your API consumers. Select vendors carefully.

Building APIs!should be complex

Page 20: The Architecture of an API Platform

Part 2 - platform engine in-depth

46elks

This document is confidential Unauthorized use prohibited

Voice, SMS and MMS!in one easy API

Page 21: The Architecture of an API Platform

Simple API

Customer applications

platform engine

SMS, MMS Phone calls

Customers, Employees, Event audience, Machines

Page 22: The Architecture of an API Platform

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

Page 23: The Architecture of an API Platform

The Architecture of an API Platform

@johanneslJohannes Lundberg