the architecture of an api platform

Post on 19-Jun-2015

463 Views

Category:

Internet

7 Downloads

Preview:

Click to see full reader

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

top related