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
Top Related