architecting ecommerce apis - gluecon 13
DESCRIPTION
Gluecon 2013 talk on eCommerce API architectureTRANSCRIPT
![Page 1: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/1.jpg)
Architecting e-Commerce APIsSaranyan Vigraham @saranyan, Tech Guy, Bigcommerce)
![Page 2: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/2.jpg)
What is BAD software design?
![Page 3: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/3.jpg)
Rigid - Hard to ChangeToo many parts get affected by a change
![Page 4: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/4.jpg)
Fragile - Unexpected thingsSomething else breaks
![Page 5: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/5.jpg)
No re-usabilityIt is part of the “core code”
![Page 6: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/6.jpg)
Mobile, Blah Blah!
![Page 7: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/7.jpg)
Importance of Platform
![Page 8: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/8.jpg)
Where is your API?
![Page 9: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/9.jpg)
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
![Page 10: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/10.jpg)
MVCTemplates
Static Assets
Database
Website
MVCTemplates
Static Assets
Mobile
Native App
Native App API
![Page 11: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/11.jpg)
The Big Ball of Mud
Brian Foote and Joseph Yoder, laputan.org/mud
![Page 12: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/12.jpg)
The Big Ball of Mud
![Page 13: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/13.jpg)
Starting with API first
![Page 14: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/14.jpg)
Everything is a service!
API Layer
UI UI UI
![Page 15: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/15.jpg)
Everything is a service!
API Layer
Payments Orders Authentication...
![Page 16: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/16.jpg)
API Layer
Payments Orders Authentication...
Service Container
SingleCode Base
Everything is a service!
![Page 17: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/17.jpg)
API Layer
Payments Orders Authentication...
Service Container
SingleCode Base
Everything is a service!
X
![Page 18: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/18.jpg)
API Layer
Payments Orders Authentication...
Service Container
SingleCode Base
Everything is a service!
![Page 19: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/19.jpg)
Liskov Substitution
Client Service 1 Service 2
Service 3
![Page 20: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/20.jpg)
Liskov Substitution
Client Service 1 Service 2
Service 3
![Page 21: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/21.jpg)
Liskov Substitution
API Layer
Payments Shipping Authentication...
Service Container
SingleCode Base
New Service Container
New AuthenticationSystemShipping Service
2.0
![Page 22: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/22.jpg)
Interface Segregation
API Layer
Payments Orders Authentication...
Service Container
SingleCode Base
![Page 23: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/23.jpg)
API Layer
Payments Orders Authentication...
Service Container
SingleCode Base
UI UI
Interface Segregation
![Page 24: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/24.jpg)
API Layer
Payments Orders Authentication...
Service Container
SingleCode Base
Interface Segregation
![Page 25: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/25.jpg)
API Layer
Payments Orders Authentication...
Service Container
SingleCode Base
UI UI
Interface Segregation
![Page 26: Architecting eCommerce APIs - Gluecon 13](https://reader033.vdocuments.site/reader033/viewer/2022051609/54708533b4af9fae0a8b4776/html5/thumbnails/26.jpg)
• Everything is a service
• Single codebase - Creation of sandboxes, provisioning, etc
• Liskov substitution
• Interface Segregation
Re-cap