Architecting eCommerce APIs - Gluecon 13

Post on 22-Nov-2014

211 views 2 download

description

Gluecon 2013 talk on eCommerce API architecture

Transcript of Architecting eCommerce APIs - Gluecon 13

Architecting e-Commerce APIsSaranyan Vigraham @saranyan, Tech Guy, Bigcommerce)

What is BAD software design?

Rigid - Hard to ChangeToo many parts get affected by a change

Fragile - Unexpected thingsSomething else breaks

No re-usabilityIt is part of the “core code”

Mobile, Blah Blah!

Importance of Platform

Where is your API?

MVC

Templates

Mobile Templates

Static Assets

Database

Database

Database

Website and Mobile

MVC

Templates

Static Assets

MVC Templates

Mobile Templates

Static Assets

Mobi MVC

We are forced to rethink our architectures

MVCTemplates

Static Assets

Database

Website

MVCTemplates

Static Assets

Mobile

Native App

Native App API

The Big Ball of Mud

Brian Foote and Joseph Yoder, laputan.org/mud

The Big Ball of Mud

Starting with API first

Everything is a service!

API Layer

UI UI UI

Everything is a service!

API Layer

Payments Orders Authentication...

API Layer

Payments Orders Authentication...

Service Container

SingleCode Base

Everything is a service!

API Layer

Payments Orders Authentication...

Service Container

SingleCode Base

Everything is a service!

X

API Layer

Payments Orders Authentication...

Service Container

SingleCode Base

Everything is a service!

Liskov Substitution

Client Service 1 Service 2

Service 3

Liskov Substitution

Client Service 1 Service 2

Service 3

Liskov Substitution

API Layer

Payments Shipping Authentication...

Service Container

SingleCode Base

New Service Container

New AuthenticationSystemShipping Service

2.0

Interface Segregation

API Layer

Payments Orders Authentication...

Service Container

SingleCode Base

API Layer

Payments Orders Authentication...

Service Container

SingleCode Base

UI UI

Interface Segregation

API Layer

Payments Orders Authentication...

Service Container

SingleCode Base

Interface Segregation

API Layer

Payments Orders Authentication...

Service Container

SingleCode Base

UI UI

Interface Segregation

• Everything is a service

• Single codebase - Creation of sandboxes, provisioning, etc

• Liskov substitution

• Interface Segregation

Re-cap

?@saranyan

https://developer.bigcommerce.com