SlideShare a Scribd company logo
Building Large Scale Web Apps and
Platforms
©2017 PayPal Inc. Confidential and proprietary.
Anurag Sinha • 09/26/2017
©2017 PayPal Inc. Confidential and proprietary.
Twitter - @anuragS28
LinkedIn - https://www.linkedin.com/in/sinhaanurag/
ANURAG SINHA (PayPal)
2
©2017 PayPal Inc. Confidential and proprietary.
Table of contents
Platform Centric Approach
Architectural Patterns
Key TakeAways
PayPal APIs
3
©2017 PayPal Inc. Confidential and proprietary.
Platform Centric Approach
4
Single Page Applications
Blurring line between
Web Apps and APIs
Reuse at Scale
Truly Centralized Server
Architecture
Thinking in terms of
Platform Capabilities
©2017 PayPal Inc. Confidential and proprietary. 5
Platform Architecture Patterns
– Name and Title
©2017 PayPal Inc. Confidential and proprietary.
Pattern 1 - Separate Out Initial Renderer
6
Renderer
Renderer A
Renderer B
Browser or
UI Client
Initial Request
Angular Experience
Initial Request
React Experience
Core Services
User Service
Cart Service
Payment Service
Other Clients
API
Operations
©2017 PayPal Inc. Confidential and proprietary.
Pattern 1 - Separate Out Initial Renderer
✓ Serve different front ends while reusing core biz logic
✓ Isolate experience state to initial renderer
✓ Enforce homogenous contract for core services
✓ Unified platform to serve experiences and APIs
©2017 PayPal Inc. Confidential and proprietary.
Pattern 2 - MicroServices
Create Read Update Delete
Operations
User Cart Payment
Resources
Data Store
Cart PaymentUser
Services
User Cart Payment
©2017 PayPal Inc. Confidential and proprietary.
Pattern 2 - MicroServices
Design core operations as
Micro-Services
Spectrum of Concerns:
From Resource to
Operations
Stateless Services
Good Ole’ SRP
(Single Responsibility
Principle)
©2017 PayPal Inc. Confidential and proprietary.
Pattern 3 - Facade Abstracts Operational Concerns
User Cart Payment
Services
Facade Auth Logging
Resource
Mapper
✓ Generic concerns such as Authorization, Validation and Logging abstracted by a facade
✓ Maps resources for internal vs external clients and APIs
✓ Orchestrate calls to multiple core services
✓ Act as a robust layer to keep core platform generic
©2017 PayPal Inc. Confidential and proprietary.
Pattern 4 - Async where you can Sync where you must!
✓ Non blocking communication
✓ Increase decoupling in the stack
✓ Lessen impact of errors in
✓ Act as a robust layer to keep core platform generic
✓ Preserves autonomy
Cart Service User Service
Async
Callbacks
©2017 PayPal Inc. Confidential and proprietary.
Pattern 5 - Cache Strategically
✓ Front end clients
✓ Facade layer
✓ Core services design
UI
Client
Facade
UI data
Styles, images etc.
Orchestration data
Common Business Objects
User
Service
Cart
Service
User
data
Cart
data
©2017 PayPal Inc. Confidential and proprietary.
Pattern 6 - State Management
13
Stateful UI
Flow State
Orchestration Context
Context sharing
Cart Operation Payments OperationsUser Operations
Interface
Context sharing
Interface
User
Service
Cart
Service
Payments
Service
UI Client
Facade
©2017 PayPal Inc. Confidential and proprietary.
Pattern 6 - State Management
✓ Manage state at the client or facade layer
✓ Context sharing between core services can happen via shared request interfaces
✓ Statelessness enables generic use and decreases points of failures
✓ React.js and Angular.Js allow pushing state to the client
©2017 PayPal Inc. Confidential and proprietary.
Pattern 7 - Adhere to a spec
✓ Enforces strict contract
✓ Make each service independently testable and deployable
✓ Makes the whole stack framework/language agnostic
✓ Spec frameworks provide a lot of the tools out of the box
©2017 PayPal Inc. Confidential and proprietary.
Pattern 8 - Use Mocks
16
Facade
UI Client
Layer
Cart Service
Payment Service
Mock APIs
Cart/Payments
Mock
Downstream Mock
Payments Mock
Downstream Mock
Cart Mock
©2017 PayPal Inc. Confidential and proprietary.
Pattern 8 - Use Mocks
✓ Mock stubs at each layer
✓ Lesser dependence on environment for testing
✓ ECI pipelines run and certify all use cases
✓ Front end clients
✓ End to End stack regressions
©2017 PayPal Inc. Confidential and proprietary.
Key Takeaways
Build Generic APIs Kill State
Seperation of Concerns
and Resources Context Sharing
Scalable and Faster
Deployment Cycles
©2017 PayPal Inc. Confidential and proprietary.
PayPal Checkout API - Built on Platform Architecture Patterns
19
Checkout APIs
https://developer.paypal.com/docs/
api/orders
API World 2017 - Building Large Scale Web Apps and Platforms

More Related Content

PDF
Building Large Scale Web Apps And Platforms
Anurag Sinha
 
PDF
Microservices, Containers, and Beyond
Lakmal Warusawithana
 
PDF
Asp Technology
a71_barletta
 
PPT
Data Collection & Caching using redis | Swatantra Kumar
Swatantra Kumar
 
PDF
East bay full stack developers meetup August 2019
Connor Leech
 
PPTX
Modifying and Extending the ESB Toolkit
BizTalk360
 
PDF
Blazor - The New Silverlight?
Christian Nagel
 
Building Large Scale Web Apps And Platforms
Anurag Sinha
 
Microservices, Containers, and Beyond
Lakmal Warusawithana
 
Asp Technology
a71_barletta
 
Data Collection & Caching using redis | Swatantra Kumar
Swatantra Kumar
 
East bay full stack developers meetup August 2019
Connor Leech
 
Modifying and Extending the ESB Toolkit
BizTalk360
 
Blazor - The New Silverlight?
Christian Nagel
 

Similar to API World 2017 - Building Large Scale Web Apps and Platforms (20)

PPTX
DeveloperWeek 2016 - Evolution of the PayPal Platform: Journey to APIs & Micr...
Deepak Nadig
 
PPTX
Evolution of PayPal API Platform at API Meetup
Deepak Nadig
 
PPTX
Evolution of the PayPal API Platform Enabling the future of Money at QCon San...
Deepak Nadig
 
PPTX
Scaling API Design
Jason Harmon
 
PPTX
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
Deepak Nadig
 
PPTX
API Product Management and Strategy
adritab
 
PPTX
Scaling API Design - Nordic APIs 2014
Jason Harmon
 
PPTX
Scaling API Design
Jason Harmon
 
PPTX
Providing Full Featured Payments (API) at Scale
Praveen Alavilli
 
PDF
PayPal APIs Up and Running Second Edition Matthew A. Russell
xlwqapj1058
 
PDF
Code-Camp-Rest-Principles
Knoldus Inc.
 
PDF
PayPal APIs Up and Running Second Edition Matthew A. Russell
kemishteklal
 
PDF
PayPal APIs Up and Running Second Edition Matthew A. Russell
zdkcysrn692
 
PDF
Redesigning PayPal APIs for Scale and Simplicity - QCon San Francisco 2013
Deepak Nadig
 
PPTX
Interop Las Vegas Cloud Connect Summit 2014 - Software Defined Data Center
Scott Carlson
 
PDF
Modern API Design Patterns for Custom Applications.pdf
himanshuwowit
 
PDF
Use Microservices & APIS to divide & conquer your Legacy Systems
PaymentComponents
 
PDF
"Exploring MACH Principles", Nikita Galkin
Fwdays
 
PPTX
Evolution of the PayPal API Platform: Enabling the future of Money at WooComm...
Deepak Nadig
 
PDF
How to build an online payment app development like pay pal
Noman Shaikh
 
DeveloperWeek 2016 - Evolution of the PayPal Platform: Journey to APIs & Micr...
Deepak Nadig
 
Evolution of PayPal API Platform at API Meetup
Deepak Nadig
 
Evolution of the PayPal API Platform Enabling the future of Money at QCon San...
Deepak Nadig
 
Scaling API Design
Jason Harmon
 
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
Deepak Nadig
 
API Product Management and Strategy
adritab
 
Scaling API Design - Nordic APIs 2014
Jason Harmon
 
Scaling API Design
Jason Harmon
 
Providing Full Featured Payments (API) at Scale
Praveen Alavilli
 
PayPal APIs Up and Running Second Edition Matthew A. Russell
xlwqapj1058
 
Code-Camp-Rest-Principles
Knoldus Inc.
 
PayPal APIs Up and Running Second Edition Matthew A. Russell
kemishteklal
 
PayPal APIs Up and Running Second Edition Matthew A. Russell
zdkcysrn692
 
Redesigning PayPal APIs for Scale and Simplicity - QCon San Francisco 2013
Deepak Nadig
 
Interop Las Vegas Cloud Connect Summit 2014 - Software Defined Data Center
Scott Carlson
 
Modern API Design Patterns for Custom Applications.pdf
himanshuwowit
 
Use Microservices & APIS to divide & conquer your Legacy Systems
PaymentComponents
 
"Exploring MACH Principles", Nikita Galkin
Fwdays
 
Evolution of the PayPal API Platform: Enabling the future of Money at WooComm...
Deepak Nadig
 
How to build an online payment app development like pay pal
Noman Shaikh
 
Ad

Recently uploaded (20)

PPTX
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
PPTX
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
PDF
Wondershare Filmora 14.5.20.12999 Crack Full New Version 2025
gsgssg2211
 
PPTX
Presentation about variables and constant.pptx
kr2589474
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PPTX
Why Use Open Source Reporting Tools for Business Intelligence.pptx
Varsha Nayak
 
PDF
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PPTX
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
PDF
The Role of Automation and AI in EHS Management for Data Centers.pdf
TECH EHS Solution
 
PDF
IEEE-CS Tech Predictions, SWEBOK and Quantum Software: Towards Q-SWEBOK
Hironori Washizaki
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
PPTX
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
Activate_Methodology_Summary presentatio
annapureddyn
 
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
Wondershare Filmora 14.5.20.12999 Crack Full New Version 2025
gsgssg2211
 
Presentation about variables and constant.pptx
kr2589474
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
Why Use Open Source Reporting Tools for Business Intelligence.pptx
Varsha Nayak
 
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
The Role of Automation and AI in EHS Management for Data Centers.pdf
TECH EHS Solution
 
IEEE-CS Tech Predictions, SWEBOK and Quantum Software: Towards Q-SWEBOK
Hironori Washizaki
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
Visualising Data with Scatterplots in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Ad

API World 2017 - Building Large Scale Web Apps and Platforms

  • 1. Building Large Scale Web Apps and Platforms ©2017 PayPal Inc. Confidential and proprietary. Anurag Sinha • 09/26/2017
  • 2. ©2017 PayPal Inc. Confidential and proprietary. Twitter - @anuragS28 LinkedIn - https://www.linkedin.com/in/sinhaanurag/ ANURAG SINHA (PayPal) 2
  • 3. ©2017 PayPal Inc. Confidential and proprietary. Table of contents Platform Centric Approach Architectural Patterns Key TakeAways PayPal APIs 3
  • 4. ©2017 PayPal Inc. Confidential and proprietary. Platform Centric Approach 4 Single Page Applications Blurring line between Web Apps and APIs Reuse at Scale Truly Centralized Server Architecture Thinking in terms of Platform Capabilities
  • 5. ©2017 PayPal Inc. Confidential and proprietary. 5 Platform Architecture Patterns – Name and Title
  • 6. ©2017 PayPal Inc. Confidential and proprietary. Pattern 1 - Separate Out Initial Renderer 6 Renderer Renderer A Renderer B Browser or UI Client Initial Request Angular Experience Initial Request React Experience Core Services User Service Cart Service Payment Service Other Clients API Operations
  • 7. ©2017 PayPal Inc. Confidential and proprietary. Pattern 1 - Separate Out Initial Renderer ✓ Serve different front ends while reusing core biz logic ✓ Isolate experience state to initial renderer ✓ Enforce homogenous contract for core services ✓ Unified platform to serve experiences and APIs
  • 8. ©2017 PayPal Inc. Confidential and proprietary. Pattern 2 - MicroServices Create Read Update Delete Operations User Cart Payment Resources Data Store Cart PaymentUser Services User Cart Payment
  • 9. ©2017 PayPal Inc. Confidential and proprietary. Pattern 2 - MicroServices Design core operations as Micro-Services Spectrum of Concerns: From Resource to Operations Stateless Services Good Ole’ SRP (Single Responsibility Principle)
  • 10. ©2017 PayPal Inc. Confidential and proprietary. Pattern 3 - Facade Abstracts Operational Concerns User Cart Payment Services Facade Auth Logging Resource Mapper ✓ Generic concerns such as Authorization, Validation and Logging abstracted by a facade ✓ Maps resources for internal vs external clients and APIs ✓ Orchestrate calls to multiple core services ✓ Act as a robust layer to keep core platform generic
  • 11. ©2017 PayPal Inc. Confidential and proprietary. Pattern 4 - Async where you can Sync where you must! ✓ Non blocking communication ✓ Increase decoupling in the stack ✓ Lessen impact of errors in ✓ Act as a robust layer to keep core platform generic ✓ Preserves autonomy Cart Service User Service Async Callbacks
  • 12. ©2017 PayPal Inc. Confidential and proprietary. Pattern 5 - Cache Strategically ✓ Front end clients ✓ Facade layer ✓ Core services design UI Client Facade UI data Styles, images etc. Orchestration data Common Business Objects User Service Cart Service User data Cart data
  • 13. ©2017 PayPal Inc. Confidential and proprietary. Pattern 6 - State Management 13 Stateful UI Flow State Orchestration Context Context sharing Cart Operation Payments OperationsUser Operations Interface Context sharing Interface User Service Cart Service Payments Service UI Client Facade
  • 14. ©2017 PayPal Inc. Confidential and proprietary. Pattern 6 - State Management ✓ Manage state at the client or facade layer ✓ Context sharing between core services can happen via shared request interfaces ✓ Statelessness enables generic use and decreases points of failures ✓ React.js and Angular.Js allow pushing state to the client
  • 15. ©2017 PayPal Inc. Confidential and proprietary. Pattern 7 - Adhere to a spec ✓ Enforces strict contract ✓ Make each service independently testable and deployable ✓ Makes the whole stack framework/language agnostic ✓ Spec frameworks provide a lot of the tools out of the box
  • 16. ©2017 PayPal Inc. Confidential and proprietary. Pattern 8 - Use Mocks 16 Facade UI Client Layer Cart Service Payment Service Mock APIs Cart/Payments Mock Downstream Mock Payments Mock Downstream Mock Cart Mock
  • 17. ©2017 PayPal Inc. Confidential and proprietary. Pattern 8 - Use Mocks ✓ Mock stubs at each layer ✓ Lesser dependence on environment for testing ✓ ECI pipelines run and certify all use cases ✓ Front end clients ✓ End to End stack regressions
  • 18. ©2017 PayPal Inc. Confidential and proprietary. Key Takeaways Build Generic APIs Kill State Seperation of Concerns and Resources Context Sharing Scalable and Faster Deployment Cycles
  • 19. ©2017 PayPal Inc. Confidential and proprietary. PayPal Checkout API - Built on Platform Architecture Patterns 19 Checkout APIs https://developer.paypal.com/docs/ api/orders