SlideShare a Scribd company logo
BUILDING LARGE SCALE
WEB APPS AND PLATFORMS
1
ANURAG SINHA
PAYPAL CHECKOUT
@ANURAGS28
WWW.LINKEDIN.COM/IN/SINHAANURAG2
STUFF I AM GONNA RAMBLE ABOUT...
▸ A little background
▸ Platform centric approach
▸ Architectural Patterns
3
TRADITIONALLY...
▸ Disjoint web apps and services stacks
▸ Server Side State management
▸ Mostly monolithic codebases
▸ Duplication of Platform logic
4
PLATFORM CENTRIC APPROACH...
▸ Single Page Applications
▸ Blurring the line between Web Apps & APIs
▸ Reuse at scale
▸ Truly centralised server architecture
▸ Thinking in terms of platform capabilities
5
Platform Architecture Patterns
6
PATTERN 1: SEPARATE OUT INITIAL RENDERER
7
▸ 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
PATTERN 2: OPTIMIZE INITIAL RENDERING
▸ Intelligent first load
▸ Server side rendering
▸ Early load data
9
PATTERN 3: MICRO..(ER ?) SERVICES
10
▸ Design core operations as Micro-Services
▸ Spectrum of Concerns: From Resource To Operations
▸ Stateless Services
▸ Good Ole' SRP (Single Responsibility Principle)
11
PATTERN 4: FACADE ABSTRACTS OPERATIONAL CONCERNS
12
▸ Generic concerns such as Authorization, Validation, Logging can be
abstracted by a facade
▸ Maps resources for internal vs external clients & APIs
▸ Can Orchestrate calls to multiple core services
▸ Can act as a robust layer to keep the core platform generic.
13
PATTERN 5: ASYNC WHERE YOU CAN...
▸ Non blocking communication
▸ Increases decoupling in the stack
▸ Lessen impact of errors in dependencies
▸ Preserves autonomy
14
PATTERN 6: CACHE STRATEGICALLY...
▸ Front end clients
▸ Facade layer
▸ Core Services design
15
PATTERN 7: SINGLE LAYER OF ABSTRACTION BETWEEN
RESOURCES
16
▸ Optimal separation between internal and external resources.
▸ Multiple external resources can map to a single internal resource.
▸ Designing internal resource as a super Resource has its pitfalls.
▸ Facade layer can abstract away the right concerns in order to not
pollute the internal resources.
17
PATTERN 8: STATE IS A NECESSARY EH..(?)VIL ! " #
▸ Manage state at the client or the 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 the state to clients
18
PATTERN 9: ADHERE ! TO A SPEC
▸ Enforces strict contract
▸ Makes each service independently testable and deployable
▸ Makes the whole stack framework/language agnostic
▸ Spec frameworks provide a lot of tools out of the box
19
PATTERN 10: MOCKITY MOCK MOCK....
20
▸ 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
21
KEY TAKEAWAYS
▸ Build Generic APIs
▸ Kill State
▸ Separation of Concerns (& Resources)
▸ Context Sharing
▸ Scalable and Faster development cycles
22
Questions ?
23
Thank You!
24
25

More Related Content

PDF
API World 2017 - Building Large Scale Web Apps and Platforms
PDF
Asp Technology
PPTX
Modifying and Extending the ESB Toolkit
PDF
Glass 2.0
PDF
East bay full stack developers meetup August 2019
PDF
The automation journey, feedback about the road to Ansible.
KEY
Introduction to Cloud Computing - CCGRID 2009
API World 2017 - Building Large Scale Web Apps and Platforms
Asp Technology
Modifying and Extending the ESB Toolkit
Glass 2.0
East bay full stack developers meetup August 2019
The automation journey, feedback about the road to Ansible.
Introduction to Cloud Computing - CCGRID 2009

Similar to Building Large Scale Web Apps And Platforms (20)

PDF
Architecting Cloud Applications - the essential checklist
PPSX
Microservices Docker Kubernetes Istio Kanban DevOps SRE
PDF
AWS Community Day - Amy Negrette - Gateways to Gateways
PDF
Running Kubernetes on OpenStack
PDF
Microservices Development - ICP Workshop Batch II
PDF
Application modernization patterns with apache kafka, debezium, and kubernete...
PDF
Modernization patterns to refactor a legacy application into event driven mic...
PDF
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
PDF
'How to build efficient backend based on microservice architecture' by Anton ...
PDF
Kickstart yourmicroservicelandscape
PDF
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
PDF
FEVR - Micro Frontend
PDF
Cloud Computing
PDF
Code One 2018 maven
PDF
How to Launch a Public PaaS with OpenSource: The GetUpCloud & OpenShift Orgin...
PDF
Agile Integration Workshop
PDF
Comparison of Current Service Mesh Architectures
PPTX
LOAD BALANCING ALGORITHMS
PPTX
Bee brief-intro-q42016
PPTX
Architecting Cloud Applications - the essential checklist
Microservices Docker Kubernetes Istio Kanban DevOps SRE
AWS Community Day - Amy Negrette - Gateways to Gateways
Running Kubernetes on OpenStack
Microservices Development - ICP Workshop Batch II
Application modernization patterns with apache kafka, debezium, and kubernete...
Modernization patterns to refactor a legacy application into event driven mic...
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
'How to build efficient backend based on microservice architecture' by Anton ...
Kickstart yourmicroservicelandscape
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
FEVR - Micro Frontend
Cloud Computing
Code One 2018 maven
How to Launch a Public PaaS with OpenSource: The GetUpCloud & OpenShift Orgin...
Agile Integration Workshop
Comparison of Current Service Mesh Architectures
LOAD BALANCING ALGORITHMS
Bee brief-intro-q42016
Ad

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
KodekX | Application Modernization Development
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Electronic commerce courselecture one. Pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
MYSQL Presentation for SQL database connectivity
KodekX | Application Modernization Development
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation theory and applications.pdf
sap open course for s4hana steps from ECC to s4
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Unlocking AI with Model Context Protocol (MCP)
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
“AI and Expert System Decision Support & Business Intelligence Systems”
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Digital-Transformation-Roadmap-for-Companies.pptx
Electronic commerce courselecture one. Pdf
Ad

Building Large Scale Web Apps And Platforms

  • 1. BUILDING LARGE SCALE WEB APPS AND PLATFORMS 1
  • 3. STUFF I AM GONNA RAMBLE ABOUT... ▸ A little background ▸ Platform centric approach ▸ Architectural Patterns 3
  • 4. TRADITIONALLY... ▸ Disjoint web apps and services stacks ▸ Server Side State management ▸ Mostly monolithic codebases ▸ Duplication of Platform logic 4
  • 5. PLATFORM CENTRIC APPROACH... ▸ Single Page Applications ▸ Blurring the line between Web Apps & APIs ▸ Reuse at scale ▸ Truly centralised server architecture ▸ Thinking in terms of platform capabilities 5
  • 7. PATTERN 1: SEPARATE OUT INITIAL RENDERER 7
  • 8. ▸ 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
  • 9. PATTERN 2: OPTIMIZE INITIAL RENDERING ▸ Intelligent first load ▸ Server side rendering ▸ Early load data 9
  • 10. PATTERN 3: MICRO..(ER ?) SERVICES 10
  • 11. ▸ Design core operations as Micro-Services ▸ Spectrum of Concerns: From Resource To Operations ▸ Stateless Services ▸ Good Ole' SRP (Single Responsibility Principle) 11
  • 12. PATTERN 4: FACADE ABSTRACTS OPERATIONAL CONCERNS 12
  • 13. ▸ Generic concerns such as Authorization, Validation, Logging can be abstracted by a facade ▸ Maps resources for internal vs external clients & APIs ▸ Can Orchestrate calls to multiple core services ▸ Can act as a robust layer to keep the core platform generic. 13
  • 14. PATTERN 5: ASYNC WHERE YOU CAN... ▸ Non blocking communication ▸ Increases decoupling in the stack ▸ Lessen impact of errors in dependencies ▸ Preserves autonomy 14
  • 15. PATTERN 6: CACHE STRATEGICALLY... ▸ Front end clients ▸ Facade layer ▸ Core Services design 15
  • 16. PATTERN 7: SINGLE LAYER OF ABSTRACTION BETWEEN RESOURCES 16
  • 17. ▸ Optimal separation between internal and external resources. ▸ Multiple external resources can map to a single internal resource. ▸ Designing internal resource as a super Resource has its pitfalls. ▸ Facade layer can abstract away the right concerns in order to not pollute the internal resources. 17
  • 18. PATTERN 8: STATE IS A NECESSARY EH..(?)VIL ! " # ▸ Manage state at the client or the 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 the state to clients 18
  • 19. PATTERN 9: ADHERE ! TO A SPEC ▸ Enforces strict contract ▸ Makes each service independently testable and deployable ▸ Makes the whole stack framework/language agnostic ▸ Spec frameworks provide a lot of tools out of the box 19
  • 20. PATTERN 10: MOCKITY MOCK MOCK.... 20
  • 21. ▸ 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 21
  • 22. KEY TAKEAWAYS ▸ Build Generic APIs ▸ Kill State ▸ Separation of Concerns (& Resources) ▸ Context Sharing ▸ Scalable and Faster development cycles 22
  • 25. 25