SlideShare uma empresa Scribd logo
1 de 26
OtherScreen
  Lessons in modern web architecture




@bigfleet                      Skookum Tech Talks
OtherScreen
  Lessons in modern web architecture




@bigfleet                      Skookum Tech Talks
@bigfleet   Skookum Tech Talks
@bigfleet   Skookum Tech Talks
@bigfleet   Skookum Tech Talks
Many major web properties are setting a
     course for the sun on a rocket that’s falling
       apart without a determined flightpath.




                That’s engineering!




@bigfleet                         Skookum Tech Talks
What can I do?

            The responsibility that comes
            with technical leadership is to
             understand and materially
              mitigate technical risk.




@bigfleet                         Skookum Tech Talks
What kind of risks?

    Execution risk
    Vision risk
    Adoption risk
    Support risk
    Maintainability risk
    Vendor risk


@bigfleet                  Skookum Tech Talks
Architecture Fundamentals


    Understand users’ interaction with your product
    Understand your tools
    Understand bringing them together




@bigfleet                           Skookum Tech Talks
Hosting: Heroku

   Addressing Vision Risk

    We can work on the app instead of its runtime
    environment.




@bigfleet                       Skookum Tech Talks
Hosting: Heroku
   Introducing Adoption Risk

    We can work on the app instead of its runtime
    environment.

   Introducing Vendor Risk

    We are comfortable with Heroku.

@bigfleet                       Skookum Tech Talks
Approach: Mobile Web
   Addressing Execution Risk

    Web technologies are what our staff knows
    best.

   Avoiding Vendor Risk

    Appcelerator is compelling, but the fit isn’t
    there right now.

@bigfleet                          Skookum Tech Talks
Broadcast: Pusher




@bigfleet         Skookum Tech Talks
Broadcast: Pusher
   Introducing Adoption Risk

    Our product requires modern browser clients.

   Introducing Vendor Risk

    Pusher is a small, UK-based staff that began
    charging last month.

@bigfleet                        Skookum Tech Talks
Data Transport: JSON




@bigfleet         Skookum Tech Talks
Data Transport: JSON




@bigfleet         Skookum Tech Talks
Data Transport: JSON




@bigfleet         Skookum Tech Talks
Data Transport: JSON




@bigfleet         Skookum Tech Talks
Data Transport: JSON
   Addressing Maintenance Risk

    Clear separation of responsibilities means
    cleaner code.

   Addressing Support Risk

    It means less overall code, too.

@bigfleet                         Skookum Tech Talks
Rails Concurrency: Le Sigh




@bigfleet          Skookum Tech Talks
Rails Concurrency: Le Sigh




@bigfleet          Skookum Tech Talks
Rails Concurrency: Le Sigh

   Addressing Adoption Risk

    By defining interactions at the browser/server
    level, Otherscreen is free to make
    commitments at the API layer.




@bigfleet                         Skookum Tech Talks
Deferred Work
   Addressing Maintenance Risk

    Callbacks are only good up to a point.

   Addressing Adoption Risk

    User experience isn’t impacted by “heavy
    lifting”

@bigfleet                        Skookum Tech Talks
Concurrency: Round 2

    Our users expect leaderboard updates along with
    updated scores, meaning spiky traffic
    Our background worker can invalidate and warm the
    cache itself.




@bigfleet                            Skookum Tech Talks
Concurrency: Round 2
   Addressing Maintenance Risk

    Very little code involved, leverages the HTTP
    spec itself.

   Addressing Adoption Risk

    This is as scalable as it gets.

@bigfleet                             Skookum Tech Talks
Thanks!

Google these things:
“Fielding REST
dissertation”
“RFC 2616 section 13”
“Event Driven
Architecture Ilya”

Mais conteúdo relacionado

Mais procurados

Kranky Geek - Virtual Collaboration - Igor Pavlov
Kranky Geek - Virtual Collaboration - Igor PavlovKranky Geek - Virtual Collaboration - Igor Pavlov
Kranky Geek - Virtual Collaboration - Igor PavlovIgor Pavlov
 
When Automation Keeps Your T-shirt Clean
When Automation Keeps Your T-shirt CleanWhen Automation Keeps Your T-shirt Clean
When Automation Keeps Your T-shirt CleanDevOps Indonesia
 
Artificial Intelligence for Network Telkom Group
Artificial Intelligence for Network Telkom GroupArtificial Intelligence for Network Telkom Group
Artificial Intelligence for Network Telkom GroupDevOps Indonesia
 
apidays LIVE Singapore 2021 - Protecting the API ecosystem by Omaru Maruatona...
apidays LIVE Singapore 2021 - Protecting the API ecosystem by Omaru Maruatona...apidays LIVE Singapore 2021 - Protecting the API ecosystem by Omaru Maruatona...
apidays LIVE Singapore 2021 - Protecting the API ecosystem by Omaru Maruatona...apidays
 
Highly Available and Resilient Multi-Site Deployments Using Spinnaker
Highly Available and Resilient Multi-Site Deployments Using SpinnakerHighly Available and Resilient Multi-Site Deployments Using Spinnaker
Highly Available and Resilient Multi-Site Deployments Using SpinnakerVMware Tanzu
 
2016 - DevOps Meets APIs - Model once. Benefit everywhere.
2016 - DevOps Meets APIs - Model once. Benefit everywhere.2016 - DevOps Meets APIs - Model once. Benefit everywhere.
2016 - DevOps Meets APIs - Model once. Benefit everywhere.devopsdaysaustin
 
Exploring the Trend Toward the Edge | Eclipse IoT Day Santa Clara 2019
Exploring the Trend Toward the Edge | Eclipse IoT Day Santa Clara 2019Exploring the Trend Toward the Edge | Eclipse IoT Day Santa Clara 2019
Exploring the Trend Toward the Edge | Eclipse IoT Day Santa Clara 2019Eclipse IoT
 

Mais procurados (7)

Kranky Geek - Virtual Collaboration - Igor Pavlov
Kranky Geek - Virtual Collaboration - Igor PavlovKranky Geek - Virtual Collaboration - Igor Pavlov
Kranky Geek - Virtual Collaboration - Igor Pavlov
 
When Automation Keeps Your T-shirt Clean
When Automation Keeps Your T-shirt CleanWhen Automation Keeps Your T-shirt Clean
When Automation Keeps Your T-shirt Clean
 
Artificial Intelligence for Network Telkom Group
Artificial Intelligence for Network Telkom GroupArtificial Intelligence for Network Telkom Group
Artificial Intelligence for Network Telkom Group
 
apidays LIVE Singapore 2021 - Protecting the API ecosystem by Omaru Maruatona...
apidays LIVE Singapore 2021 - Protecting the API ecosystem by Omaru Maruatona...apidays LIVE Singapore 2021 - Protecting the API ecosystem by Omaru Maruatona...
apidays LIVE Singapore 2021 - Protecting the API ecosystem by Omaru Maruatona...
 
Highly Available and Resilient Multi-Site Deployments Using Spinnaker
Highly Available and Resilient Multi-Site Deployments Using SpinnakerHighly Available and Resilient Multi-Site Deployments Using Spinnaker
Highly Available and Resilient Multi-Site Deployments Using Spinnaker
 
2016 - DevOps Meets APIs - Model once. Benefit everywhere.
2016 - DevOps Meets APIs - Model once. Benefit everywhere.2016 - DevOps Meets APIs - Model once. Benefit everywhere.
2016 - DevOps Meets APIs - Model once. Benefit everywhere.
 
Exploring the Trend Toward the Edge | Eclipse IoT Day Santa Clara 2019
Exploring the Trend Toward the Edge | Eclipse IoT Day Santa Clara 2019Exploring the Trend Toward the Edge | Eclipse IoT Day Santa Clara 2019
Exploring the Trend Toward the Edge | Eclipse IoT Day Santa Clara 2019
 

Destaque

productronica Daily Day 1 / Tag 1
productronica Daily Day 1 / Tag 1productronica Daily Day 1 / Tag 1
productronica Daily Day 1 / Tag 1Messe München GmbH
 
5 Tips for Executing a Great Newsjack
5 Tips for Executing a Great Newsjack5 Tips for Executing a Great Newsjack
5 Tips for Executing a Great Newsjackprnewswire
 
Dev opsdayssv2014 devopsasrelationshipmanagement
Dev opsdayssv2014 devopsasrelationshipmanagementDev opsdayssv2014 devopsasrelationshipmanagement
Dev opsdayssv2014 devopsasrelationshipmanagementJames Urquhart
 
Doing Business in the U.S. - Franchising Requirements and Litigation/E-Discov...
Doing Business in the U.S. - Franchising Requirements and Litigation/E-Discov...Doing Business in the U.S. - Franchising Requirements and Litigation/E-Discov...
Doing Business in the U.S. - Franchising Requirements and Litigation/E-Discov...Di Santo LLP
 
Kriton Curi Koro Tekne Gezisi 15 HAziran 2014
Kriton Curi Koro Tekne Gezisi  15 HAziran 2014Kriton Curi Koro Tekne Gezisi  15 HAziran 2014
Kriton Curi Koro Tekne Gezisi 15 HAziran 2014aokutur
 
Powerpoint fiesta bachatta all stars @ sala versus (4 12-2010)
Powerpoint fiesta bachatta all stars @ sala versus (4 12-2010)Powerpoint fiesta bachatta all stars @ sala versus (4 12-2010)
Powerpoint fiesta bachatta all stars @ sala versus (4 12-2010)RAZORDJ
 
The Power of Story: Why you are losing clients and the best staff
The Power of Story: Why you are losing clients and the best staffThe Power of Story: Why you are losing clients and the best staff
The Power of Story: Why you are losing clients and the best staffRipMedia Group,
 
SERAP HOCAMIZ ve KORO ARKADAŞLARIMIZIN EYLÜL 2014 DOĞUM GÜNÜ
SERAP HOCAMIZ ve KORO ARKADAŞLARIMIZIN EYLÜL 2014  DOĞUM GÜNÜSERAP HOCAMIZ ve KORO ARKADAŞLARIMIZIN EYLÜL 2014  DOĞUM GÜNÜ
SERAP HOCAMIZ ve KORO ARKADAŞLARIMIZIN EYLÜL 2014 DOĞUM GÜNÜaokutur
 
WTR 平台介紹
WTR 平台介紹WTR 平台介紹
WTR 平台介紹waytorich
 
BBcon 2014 Moneyball: How Analytics Improves Fundraising
BBcon 2014 Moneyball: How Analytics Improves FundraisingBBcon 2014 Moneyball: How Analytics Improves Fundraising
BBcon 2014 Moneyball: How Analytics Improves FundraisingCharity Dynamics
 
International Tech transfer cooperation some thoughts based on recent attempt
International Tech transfer cooperation some thoughts based on recent attemptInternational Tech transfer cooperation some thoughts based on recent attempt
International Tech transfer cooperation some thoughts based on recent attemptIngria. Technopark St. Petersburg
 

Destaque (20)

productronica Daily Day 1 / Tag 1
productronica Daily Day 1 / Tag 1productronica Daily Day 1 / Tag 1
productronica Daily Day 1 / Tag 1
 
A good summer
A good summerA good summer
A good summer
 
Roi Of Video Info Graphic
Roi Of Video Info GraphicRoi Of Video Info Graphic
Roi Of Video Info Graphic
 
ООО «ЦРТ-инновации»
ООО «ЦРТ-инновации»ООО «ЦРТ-инновации»
ООО «ЦРТ-инновации»
 
Ppt 5 años
Ppt 5 añosPpt 5 años
Ppt 5 años
 
Plastmaster
PlastmasterPlastmaster
Plastmaster
 
5 Tips for Executing a Great Newsjack
5 Tips for Executing a Great Newsjack5 Tips for Executing a Great Newsjack
5 Tips for Executing a Great Newsjack
 
Dev opsdayssv2014 devopsasrelationshipmanagement
Dev opsdayssv2014 devopsasrelationshipmanagementDev opsdayssv2014 devopsasrelationshipmanagement
Dev opsdayssv2014 devopsasrelationshipmanagement
 
Doing Business in the U.S. - Franchising Requirements and Litigation/E-Discov...
Doing Business in the U.S. - Franchising Requirements and Litigation/E-Discov...Doing Business in the U.S. - Franchising Requirements and Litigation/E-Discov...
Doing Business in the U.S. - Franchising Requirements and Litigation/E-Discov...
 
Kriton Curi Koro Tekne Gezisi 15 HAziran 2014
Kriton Curi Koro Tekne Gezisi  15 HAziran 2014Kriton Curi Koro Tekne Gezisi  15 HAziran 2014
Kriton Curi Koro Tekne Gezisi 15 HAziran 2014
 
Powerpoint fiesta bachatta all stars @ sala versus (4 12-2010)
Powerpoint fiesta bachatta all stars @ sala versus (4 12-2010)Powerpoint fiesta bachatta all stars @ sala versus (4 12-2010)
Powerpoint fiesta bachatta all stars @ sala versus (4 12-2010)
 
The Power of Story: Why you are losing clients and the best staff
The Power of Story: Why you are losing clients and the best staffThe Power of Story: Why you are losing clients and the best staff
The Power of Story: Why you are losing clients and the best staff
 
Elephant
ElephantElephant
Elephant
 
Информационный вестник Июль 2013
 Информационный вестник Июль 2013  Информационный вестник Июль 2013
Информационный вестник Июль 2013
 
SERAP HOCAMIZ ve KORO ARKADAŞLARIMIZIN EYLÜL 2014 DOĞUM GÜNÜ
SERAP HOCAMIZ ve KORO ARKADAŞLARIMIZIN EYLÜL 2014  DOĞUM GÜNÜSERAP HOCAMIZ ve KORO ARKADAŞLARIMIZIN EYLÜL 2014  DOĞUM GÜNÜ
SERAP HOCAMIZ ve KORO ARKADAŞLARIMIZIN EYLÜL 2014 DOĞUM GÜNÜ
 
WTR 平台介紹
WTR 平台介紹WTR 平台介紹
WTR 平台介紹
 
BBcon 2014 Moneyball: How Analytics Improves Fundraising
BBcon 2014 Moneyball: How Analytics Improves FundraisingBBcon 2014 Moneyball: How Analytics Improves Fundraising
BBcon 2014 Moneyball: How Analytics Improves Fundraising
 
Web Ready: Информационное письмо №1
Web Ready: Информационное письмо №1Web Ready: Информационное письмо №1
Web Ready: Информационное письмо №1
 
SMaileX.com [Web Ready 2010]
SMaileX.com [Web Ready 2010]SMaileX.com [Web Ready 2010]
SMaileX.com [Web Ready 2010]
 
International Tech transfer cooperation some thoughts based on recent attempt
International Tech transfer cooperation some thoughts based on recent attemptInternational Tech transfer cooperation some thoughts based on recent attempt
International Tech transfer cooperation some thoughts based on recent attempt
 

Semelhante a OtherScreen Architecture

Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...Docker, Inc.
 
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Samy Fodil
 
Securing a Cloud Migration
Securing a Cloud MigrationSecuring a Cloud Migration
Securing a Cloud MigrationVMware Tanzu
 
AWS live hack: Docker + Snyk Container on AWS
AWS live hack: Docker + Snyk Container on AWSAWS live hack: Docker + Snyk Container on AWS
AWS live hack: Docker + Snyk Container on AWSEric Smalling
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Quobis
 
Web 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes PresentationWeb 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes PresentationJamie Thingelstad
 
Samsung started to develop its own blockchain
Samsung started to develop its own blockchain Samsung started to develop its own blockchain
Samsung started to develop its own blockchain Blockchain Council
 
Web Application Security Reloaded for the HTML5 era
Web Application Security Reloaded for the HTML5 eraWeb Application Security Reloaded for the HTML5 era
Web Application Security Reloaded for the HTML5 eraCarlo Bonamico
 
William-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam Timpany
 
Flutter vs React Native The Ultimate Comparison in 2023
Flutter vs React Native The Ultimate Comparison in 2023Flutter vs React Native The Ultimate Comparison in 2023
Flutter vs React Native The Ultimate Comparison in 2023Pixlogix Infotech
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro FrontendMiki Lombardi
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterAlexander Arda
 
WebRTC - Is this a Game changer??
WebRTC - Is this a Game changer??WebRTC - Is this a Game changer??
WebRTC - Is this a Game changer??learjk
 
Real Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingReal Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingIRJET Journal
 
Choosing the Best Mobile App Framework
Choosing the Best Mobile App FrameworkChoosing the Best Mobile App Framework
Choosing the Best Mobile App FrameworkBrandon Minnick, MBA
 
Best Practices for Troubleshooting Four Real-world Java Performance Issues
Best Practices for Troubleshooting Four Real-world Java Performance IssuesBest Practices for Troubleshooting Four Real-world Java Performance Issues
Best Practices for Troubleshooting Four Real-world Java Performance IssueseG Innovations
 

Semelhante a OtherScreen Architecture (20)

Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
 
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
Connectivity is here (5 g, swarm,...). now, let's build interplanetary apps! (1)
 
Securing a Cloud Migration
Securing a Cloud MigrationSecuring a Cloud Migration
Securing a Cloud Migration
 
Securing a Cloud Migration
Securing a Cloud MigrationSecuring a Cloud Migration
Securing a Cloud Migration
 
AWS live hack: Docker + Snyk Container on AWS
AWS live hack: Docker + Snyk Container on AWSAWS live hack: Docker + Snyk Container on AWS
AWS live hack: Docker + Snyk Container on AWS
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)
 
SunidhiSharma
SunidhiSharmaSunidhiSharma
SunidhiSharma
 
Web 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes PresentationWeb 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes Presentation
 
Samsung started to develop its own blockchain
Samsung started to develop its own blockchain Samsung started to develop its own blockchain
Samsung started to develop its own blockchain
 
Web Application Security Reloaded for the HTML5 era
Web Application Security Reloaded for the HTML5 eraWeb Application Security Reloaded for the HTML5 era
Web Application Security Reloaded for the HTML5 era
 
DevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDKDevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDK
 
William-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-ResumeWilliam-Timpany-2016-03-09-v4-Resume
William-Timpany-2016-03-09-v4-Resume
 
Cloud to Edge
Cloud to EdgeCloud to Edge
Cloud to Edge
 
Flutter vs React Native The Ultimate Comparison in 2023
Flutter vs React Native The Ultimate Comparison in 2023Flutter vs React Native The Ultimate Comparison in 2023
Flutter vs React Native The Ultimate Comparison in 2023
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
 
WebRTC - Is this a Game changer??
WebRTC - Is this a Game changer??WebRTC - Is this a Game changer??
WebRTC - Is this a Game changer??
 
Real Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingReal Time Head Generation for Video Conferencing
Real Time Head Generation for Video Conferencing
 
Choosing the Best Mobile App Framework
Choosing the Best Mobile App FrameworkChoosing the Best Mobile App Framework
Choosing the Best Mobile App Framework
 
Best Practices for Troubleshooting Four Real-world Java Performance Issues
Best Practices for Troubleshooting Four Real-world Java Performance IssuesBest Practices for Troubleshooting Four Real-world Java Performance Issues
Best Practices for Troubleshooting Four Real-world Java Performance Issues
 

Último

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

OtherScreen Architecture

  • 1. OtherScreen Lessons in modern web architecture @bigfleet Skookum Tech Talks
  • 2. OtherScreen Lessons in modern web architecture @bigfleet Skookum Tech Talks
  • 3. @bigfleet Skookum Tech Talks
  • 4. @bigfleet Skookum Tech Talks
  • 5. @bigfleet Skookum Tech Talks
  • 6. Many major web properties are setting a course for the sun on a rocket that’s falling apart without a determined flightpath. That’s engineering! @bigfleet Skookum Tech Talks
  • 7. What can I do? The responsibility that comes with technical leadership is to understand and materially mitigate technical risk. @bigfleet Skookum Tech Talks
  • 8. What kind of risks? Execution risk Vision risk Adoption risk Support risk Maintainability risk Vendor risk @bigfleet Skookum Tech Talks
  • 9. Architecture Fundamentals Understand users’ interaction with your product Understand your tools Understand bringing them together @bigfleet Skookum Tech Talks
  • 10. Hosting: Heroku Addressing Vision Risk We can work on the app instead of its runtime environment. @bigfleet Skookum Tech Talks
  • 11. Hosting: Heroku Introducing Adoption Risk We can work on the app instead of its runtime environment. Introducing Vendor Risk We are comfortable with Heroku. @bigfleet Skookum Tech Talks
  • 12. Approach: Mobile Web Addressing Execution Risk Web technologies are what our staff knows best. Avoiding Vendor Risk Appcelerator is compelling, but the fit isn’t there right now. @bigfleet Skookum Tech Talks
  • 13. Broadcast: Pusher @bigfleet Skookum Tech Talks
  • 14. Broadcast: Pusher Introducing Adoption Risk Our product requires modern browser clients. Introducing Vendor Risk Pusher is a small, UK-based staff that began charging last month. @bigfleet Skookum Tech Talks
  • 15. Data Transport: JSON @bigfleet Skookum Tech Talks
  • 16. Data Transport: JSON @bigfleet Skookum Tech Talks
  • 17. Data Transport: JSON @bigfleet Skookum Tech Talks
  • 18. Data Transport: JSON @bigfleet Skookum Tech Talks
  • 19. Data Transport: JSON Addressing Maintenance Risk Clear separation of responsibilities means cleaner code. Addressing Support Risk It means less overall code, too. @bigfleet Skookum Tech Talks
  • 20. Rails Concurrency: Le Sigh @bigfleet Skookum Tech Talks
  • 21. Rails Concurrency: Le Sigh @bigfleet Skookum Tech Talks
  • 22. Rails Concurrency: Le Sigh Addressing Adoption Risk By defining interactions at the browser/server level, Otherscreen is free to make commitments at the API layer. @bigfleet Skookum Tech Talks
  • 23. Deferred Work Addressing Maintenance Risk Callbacks are only good up to a point. Addressing Adoption Risk User experience isn’t impacted by “heavy lifting” @bigfleet Skookum Tech Talks
  • 24. Concurrency: Round 2 Our users expect leaderboard updates along with updated scores, meaning spiky traffic Our background worker can invalidate and warm the cache itself. @bigfleet Skookum Tech Talks
  • 25. Concurrency: Round 2 Addressing Maintenance Risk Very little code involved, leverages the HTTP spec itself. Addressing Adoption Risk This is as scalable as it gets. @bigfleet Skookum Tech Talks
  • 26. Thanks! Google these things: “Fielding REST dissertation” “RFC 2616 section 13” “Event Driven Architecture Ilya”

Notas do Editor

  1. \n
  2. \n
  3. To learn lessons, it’s vital to identify engineers or scientists that you can learn them from.\n\nIn my case, Ben Black, CEO of Boundary, is such a scientist. He has a track record, sense of humor, and the ability to describe difficult concepts in a way I can understand. The message he carries is, in many cases, grim.\n\nHere he shares the truism that traffic will break every web application, there are no exceptions. (By the way, Richard McDougall is Application Infrastructure CTO at VMware, a $40b company.)\n
  4. Depending on the size of your intended audience, the story gets even worse.\n\nThe world of open source software is a wonderful and amazing world, and there have never been so many tools freely available to engineers working on difficult problems. At the same time, the cutting edge has never been so sharp.\n
  5. If you were at my last Skookum Tech Talk, I outlined some of the challenges of today’s Ruby community. Carl Lerche, co-author of bundler, one of the libraries I discussed in that talk, likened a recent tiff to “arguing what color to pain the door when half the house is collapsing from structural damage.”\n\nProgrammers can be so dramatic!\n
  6. So here’s my over-dramatization!\n\n\n\n
  7. So that’s all been pretty much a downer. What can I do about it?\n\nI believe that accepting into your job some elements of technical leadership is important. If you are a developer, you should be thinking about being a senior developer. If you are a senior dev, start looking at managing risk across multiple projects or products as a director.\n
  8. Execution risk: you won't be able to build what you want\nVision risk: you won't build the desired thing\nAdoption risk: you can't attract customers to what you've built\nSupport risk: you will write something you can't keep running\nMaintainability risk: your code will reach a point where you can't change it easily\nVendor risk: you partner with the wrong people\n\n
  9. Usage patterns encompass everything about the users’ behavior. Times of day, concentration of actions, are they reading or writing, do they cause reads or write to happen, which of their messages need to be broadcast, how many items are we talking about, what pages query or sort on which data, etc.\n\nYour tools are everything that you’ll use in your runtime environment to provide the user experience.\n\nConsidering them together is the fun part. I’ll now use this framework to talk about what we’ve done at Otherscreen to architect the experience you’ll have during the demo.\n
  10. Heroku helps us address a risk. Because we aren’t spending time on maintaining and setting up the runtime environment, we can spend that time on writing the application. That’s direct treatment.\n
  11. The selection of Heroku as a vendor opens Otherscreen to other risks. EC2 is prone to large outages, and the most recent major outages have both had isolated reports of data loss. At this time in the application’s lifetime, we think this exposure is worth the risk.\n\nHeroku has been hosting Rails applications as long as anyone, and our application is not challenging to host there. We are comfortable with their profile, and it doesn’t hurt that I have a couple of phone numbers over there...\n
  12. The mobile experience is a vital part of our product. We anticipate high levels of mobile traffic from those enjoying our product at sports bars or their hosts’ living rooms. The decision about whether to write a native client or use the mobile web was very relevant for us.\n\nAt this time, we’re going to go with the mobile web, because of the better risk profile for us. We evaluated a middle path, but chose not to go that direction at this time. We’ll get into why we have the ability to revisit this decision more easily, later in the life of our company, later in this presentation.\n\n\n
  13. We need to get our questions to end users in real time, and there could be a lot of them. Mass broadcast strategies can be tricky and are hard to get right. The “easy” ways to implement mass broadcast can introduce latency, poor performance, or worse. \n\nWe’re using HTML 5‘s WebSockets and Pusher to accomplish this. This offloads a core technical concern to a vendor, a decision that should never be made lightly.\n\nFor Otherscreen, however, it allows us to defer a significant development effort because of the difficulty of the task. By allowing Pusher to do what they are good at, especially for now, we’re also ensuring we can work on developing a product we can market instead of something that simply works.\n
  14. That decision isn’t without risk. WebSockets are not yet widely implemented, and there have been recent setbacks with the protocol that are only now getting addressed by implementors.\n\nPusher is also a small startup themselves, and we project as if we might become their biggest client sooner rather than later. Bryan Helmkamp, CTO at Efficiency 2.0, shared some great advice with me about vendors: “Never be the first, the last, the biggest, or the smallest.” I think that’s great advice. We mitigated some of this risk by reaching out to them and beginning conversations this early in the process, before our mass-market launch.\n
  15. A common approach to AJAX in Rails world involves shipping HTML across the wire to perform direct DOM manipulation.\n\n\n\nAs a result of this and other considerations, we decided to speak JSON as a data transport language and begin creating a real API of our own for our clients to consume. This decision has big implications, and makes these browser clients a very important part of the user experience.\n
  16. Because of our mobile web focus, it’s difficult to maintain the same DOM for laptop and the mobile experience. Additionally, the introduction of WebSockets, with its message passing paradigm, is outside of the typical Rails engineering request-response wheelhouse. \n\n\n
  17. As a result of this and other considerations, we decided to speak JSON as a data transport language and begin creating a real API of our own for our clients to consume. This decision has big implications, and makes these browser clients a very important part of the user experience.\n
  18. Using backbone.js allows us to maintain “known good” model states on the client-side, aids in providing the proper interactivity for API writes, and is open to WebSocket messages updating model state and updating client appearance and interactivity. \n
  19. As a result of making this separation, it clears up what language and system is responsible for what, which means less code and cleaner code-- always a good thing. \n
  20. So, conceptually, we’ve dealt with getting the questions in front of clients. We run into a thorny problem when it comes to dealing with the answers, which is that running Rails can be expensive. \n
  21. The blocking behavior of its clients means that if you anticipate spiky request patterns, you have to overprovision to ensure clients spend most of their time on the CPU rather than waiting around for a worker to service their request. Boo!\n
  22. Here is where our decision to commit to an API early also helps. The technical decision on how to service individual API endpoints can be made later. We can use Sinatra, EventMachine, or even another language that Heroku supports like Clojure or node.js to address our concurrency problems at the application layer.\n\nKnowing what your runtime is good at and where it struggles is one of the most important things to understand as an architect, whether you have that title or not.\n
  23. Let’s walk through what happens when play progresses and we now know the correct answer to a question we’ve posed. We’ve got a lot of answers that we need to mark as correct, scores to update, accuracy ratings to recalculate, etc.\n\nWe do this sort of work in the background, outside of the request-response lifecycle. This has positive effects on both the codebase and the user experience.\n
  24. And, for our particular use case, the gifts of deferred work can keep on giving.\n\nAfter the work of doing the scoring is complete, all our clients are interested in that updated information. Fortunately, this time, when faced with a wave of client requests, we can be better prepared. The leaderboard information is the same for all users, and we can use HTTP caching to ensure that we only respond once. In our case, the background worker can do some of this work before a client even knows they’re interested in a new leaderboard.\n\n\n\n\n
  25. The HTTP specification has a lot of goodies, and caching is one of the big ones. If you fully understand how to leverage HTTP caching, your application server need not produce the same response twice-- intermediate caches ought to be able to return everything else. Quite a challenge but an incredible payoff!\n\nIt’s trivial to see that serving every request from RAM is the most performant way to serve responses, and proxy caches are some of the most efficient open source software available in terms of RAM usage. It’s a great scalability story.\n
  26. Thanks for listening!\n