際際滷

際際滷Share a Scribd company logo
Architecting e-Commerce APIs

Saranyan Vigraham
@saranyan, Tech Guy, Bigcommerce)
What is BAD
software design?
Rigid - Hard to Change
Too many parts get affected by a change
Fragile - Unexpected things
Something else breaks
No re-usability
It is part of the core code
Mobile, Blah Blah!
Importance of Platform
Where is your
API?
We are forced to rethink our architectures
Website and Mobile

Templates
Database
MVC

Mobile Templates
MVC

Templates
Database

Static Assets
Mobi
MVC

Mobile Templates

Static Assets

Templates
Database
MVC

Static Assets
Website

Templates
MVC

Static Assets

Mobile

Templates
MVC

Static Assets

Native App

Native App API

Database
The Big Ball of Mud

Brian Foote and Joseph Yoder, laputan.org/mud
The Big Ball of Mud
Starting with API 鍖r壊岳
Everything is a service!

UI

UI

API Layer

UI
Everything is a service!

API Layer

Payments

Orders

...

Authentication
Everything is a service!

API Layer

Payments

Orders

Service Container

Single
Code Base

...

Authentication
Everything is a service!

API Layer

Payments

Orders

Service Container

X
Single
Code Base

...

Authentication
Everything is a service!

API Layer

Single
Code Base

Payments

Orders

Service Container

...

Authentication
Liskov Substitution

Client

Service 1

Service 2

Service 3
Liskov Substitution

Client

Service 1

Service 2

Service 3
Liskov Substitution

API Layer

Single
Code Base

Payments

Shipping

...

Authentication

Service Container

New Authentication
System

Shipping Service
2.0
New Service Container
Interface Segregation

Single
Code Base
API Layer

Payments

Orders

Service Container

...

Authentication
Interface Segregation
Single
Code Base

UI

UI

API Layer

Payments

Orders

Service Container

...

Authentication
Interface Segregation

API Layer

Payments

Orders

Service Container

Single
Code Base

...

Authentication
Interface Segregation

Single
Code Base
UI

UI

API Layer

Payments

Orders

Service Container

...

Authentication
Re-cap
 Everything is a service

 Single codebase - Creation of
sandboxes, provisioning, etc

 Liskov substitution

 Interface Segregation
?

@saranyan
https://developer.bigcommerce.com

More Related Content

Architecting eCommerce APIs - Gluecon 13