SlideShare a Scribd company logo
1 of 21
© 2014 IBM CorporationFebruary 22 – 24, 2015
Stop Observing, Start Reacting
A new way for building collaborative, real-time Apps
http://www.reactivemanifesto.org/
http://www.reactivemanifesto.org/
Choice
Overload
10
meteor.com
Single Page Apps (Web/Mobile)
Based on Node.js
MongoDB
Client-side HTML Templating
devOps tooling
Meteor –
Go Full Stack
CLI and Folder Structures
Sent only to client
(concat + minified)
Server backend only
Everything else: runs on
Client AND Server
https://meteorhacks.com/introduction-to-ddp.html
Pub-Sub + RPC
EJSON
Websockets / Long Polling
Currently using
MongoDB (Redis)
The DDP
Protocol
Tracker
Infers & tracks
code dependencies
Automatic (Re-) Computations
Reactivity on data changes
Event-driven: no listeners
Pub/Sub to Collections
Instant updates to all Clients
Isomorphic API
Reactive
Collections
Instant UI updates
Client-side data replica
Latency
Compensation
https://meteorhacks.com/introduction-to-latency-compensation.html
Simplified UI code
Auto-updates
DOM on changes
Reactive UI
Templates
client/templates/MyTalks.html
client/templates/MyTalks.js
Social Accounts
Security
Package Management
Cordova / Hybrid
Mobile support
Easy to consume
Node.js packages
Ready to use
Platform
https://atmospherejs.com/
Packages &
Ecosystem
#ibminterconnect
21
@florian_georg

More Related Content

What's hot

Introduction core web vitals
Introduction core web vitalsIntroduction core web vitals
Introduction core web vitalsSortdMediology
 
Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Gustaf Nilsson Kotte
 
BuildPiper - Delivering Value at Scale
BuildPiper - Delivering Value at ScaleBuildPiper - Delivering Value at Scale
BuildPiper - Delivering Value at ScaleOpsTree solutions
 
Rubix - Serverless architecture
Rubix - Serverless architectureRubix - Serverless architecture
Rubix - Serverless architectureRubiX BV
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015MeteorJS
 
Lyon Studytrip - Microservices in Docker & Kubernetes
Lyon Studytrip - Microservices in Docker & KubernetesLyon Studytrip - Microservices in Docker & Kubernetes
Lyon Studytrip - Microservices in Docker & KubernetesWouter Devinck
 
Progressive web applications development
Progressive web applications developmentProgressive web applications development
Progressive web applications developmentKhairul Anwar Sedek
 
React BKK: Scalable Application Architecture
React BKK: Scalable Application ArchitectureReact BKK: Scalable Application Architecture
React BKK: Scalable Application ArchitectureZack Siri
 
UI Animations in Meteor
UI Animations in MeteorUI Animations in Meteor
UI Animations in MeteorNick Wientge
 
Rubyslava Phoenix Liveview
Rubyslava Phoenix LiveviewRubyslava Phoenix Liveview
Rubyslava Phoenix LiveviewOliver Kriska
 
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan WrightSummit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan WrightAndrew Ly
 

What's hot (17)

Jayway Web Tech Radar 2015
Jayway Web Tech Radar 2015Jayway Web Tech Radar 2015
Jayway Web Tech Radar 2015
 
Introduction core web vitals
Introduction core web vitalsIntroduction core web vitals
Introduction core web vitals
 
Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)Simpler Web Architectures Now! (At The Frontend 2016)
Simpler Web Architectures Now! (At The Frontend 2016)
 
Meteor + React
Meteor + ReactMeteor + React
Meteor + React
 
Dvr Summary
Dvr SummaryDvr Summary
Dvr Summary
 
BuildPiper - Delivering Value at Scale
BuildPiper - Delivering Value at ScaleBuildPiper - Delivering Value at Scale
BuildPiper - Delivering Value at Scale
 
WordPress: React Way
WordPress: React WayWordPress: React Way
WordPress: React Way
 
Rubix - Serverless architecture
Rubix - Serverless architectureRubix - Serverless architecture
Rubix - Serverless architecture
 
Meteor intro-2015
Meteor intro-2015Meteor intro-2015
Meteor intro-2015
 
Lyon Studytrip - Microservices in Docker & Kubernetes
Lyon Studytrip - Microservices in Docker & KubernetesLyon Studytrip - Microservices in Docker & Kubernetes
Lyon Studytrip - Microservices in Docker & Kubernetes
 
Aerobatic Introduction
Aerobatic IntroductionAerobatic Introduction
Aerobatic Introduction
 
Progressive web applications development
Progressive web applications developmentProgressive web applications development
Progressive web applications development
 
React BKK: Scalable Application Architecture
React BKK: Scalable Application ArchitectureReact BKK: Scalable Application Architecture
React BKK: Scalable Application Architecture
 
Stacks Cloud - Digital Ocean
Stacks Cloud - Digital OceanStacks Cloud - Digital Ocean
Stacks Cloud - Digital Ocean
 
UI Animations in Meteor
UI Animations in MeteorUI Animations in Meteor
UI Animations in Meteor
 
Rubyslava Phoenix Liveview
Rubyslava Phoenix LiveviewRubyslava Phoenix Liveview
Rubyslava Phoenix Liveview
 
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan WrightSummit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
Summit Australia 2019 - PowerApp Portals - Andrew Ly & Lachlan Wright
 

Similar to Building Reactive Apps with Meteor

Meteor-nepal introduction to meteor
Meteor-nepal introduction to meteorMeteor-nepal introduction to meteor
Meteor-nepal introduction to meteorpiyush thapa
 
Reactive Application Using METEOR
Reactive Application Using METEORReactive Application Using METEOR
Reactive Application Using METEORNodeXperts
 
IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015gjuljo
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSJulio Antonio Mendonça de Marins
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Lou Sacco
 
Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?Mark Friedman
 
Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015Codemotion
 
Meteor + Polymer
Meteor + PolymerMeteor + Polymer
Meteor + Polymerwolf4ood
 
Reactive application using meteor
Reactive application using meteorReactive application using meteor
Reactive application using meteorSapna Upreti
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approachMark Friedman
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Ido Flatow
 
Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016Kyle Brown
 
Introduction to meteor
Introduction to meteorIntroduction to meteor
Introduction to meteorNodeXperts
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkToby Corbin
 

Similar to Building Reactive Apps with Meteor (20)

Meteor js
Meteor jsMeteor js
Meteor js
 
Meteor Introduction - Ashish
Meteor Introduction - AshishMeteor Introduction - Ashish
Meteor Introduction - Ashish
 
Meteor-nepal introduction to meteor
Meteor-nepal introduction to meteorMeteor-nepal introduction to meteor
Meteor-nepal introduction to meteor
 
Node js
Node jsNode js
Node js
 
Reactive Application Using METEOR
Reactive Application Using METEORReactive Application Using METEOR
Reactive Application Using METEOR
 
IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015
 
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJSMeteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
Meteoro de pegasuus! Desenvolvendo aplicações realtime com MeteorJS
 
Eclipse summit-2010
Eclipse summit-2010Eclipse summit-2010
Eclipse summit-2010
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 
Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?
 
Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015
 
Meteor + Polymer
Meteor + PolymerMeteor + Polymer
Meteor + Polymer
 
Reactive application using meteor
Reactive application using meteorReactive application using meteor
Reactive application using meteor
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approach
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6
 
Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016
 
React DOM/Virtual DOM
React DOM/Virtual DOMReact DOM/Virtual DOM
React DOM/Virtual DOM
 
Introduction to meteor
Introduction to meteorIntroduction to meteor
Introduction to meteor
 
A164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdkA164 enterprise javascript ibm node sdk
A164 enterprise javascript ibm node sdk
 
From MVC to React
From MVC to ReactFrom MVC to React
From MVC to React
 

More from Florian Georg

Behavior-Driven-Development (BDD) for Conversational Applications
Behavior-Driven-Development (BDD) for Conversational ApplicationsBehavior-Driven-Development (BDD) for Conversational Applications
Behavior-Driven-Development (BDD) for Conversational ApplicationsFlorian Georg
 
Behaviour-Driven Development for Conversational Applications
Behaviour-Driven Development for Conversational ApplicationsBehaviour-Driven Development for Conversational Applications
Behaviour-Driven Development for Conversational ApplicationsFlorian Georg
 
Artificial Intelligence and Cognitive Computing
Artificial Intelligence and Cognitive ComputingArtificial Intelligence and Cognitive Computing
Artificial Intelligence and Cognitive ComputingFlorian Georg
 
Pillars of DevOps: Platform, Method and Architecture
Pillars of DevOps: Platform, Method and ArchitecturePillars of DevOps: Platform, Method and Architecture
Pillars of DevOps: Platform, Method and ArchitectureFlorian Georg
 
Enterprise PaaS, Cloud-Native Architecture and Microservices
Enterprise PaaS, Cloud-Native Architecture and MicroservicesEnterprise PaaS, Cloud-Native Architecture and Microservices
Enterprise PaaS, Cloud-Native Architecture and MicroservicesFlorian Georg
 
Continuous Delivery of Cloud Applications with Docker Containers and IBM Bluemix
Continuous Delivery of Cloud Applications with Docker Containers and IBM BluemixContinuous Delivery of Cloud Applications with Docker Containers and IBM Bluemix
Continuous Delivery of Cloud Applications with Docker Containers and IBM BluemixFlorian Georg
 
Visual Exploration of Large Data sets with D3, crossfilter and dc.js
Visual Exploration of Large Data sets with D3, crossfilter and dc.jsVisual Exploration of Large Data sets with D3, crossfilter and dc.js
Visual Exploration of Large Data sets with D3, crossfilter and dc.jsFlorian Georg
 
The IBM Open Cloud Architecture (and Platform)
The IBM Open Cloud Architecture (and Platform)The IBM Open Cloud Architecture (and Platform)
The IBM Open Cloud Architecture (and Platform)Florian Georg
 
Development in the cloud for the cloud
Development in the cloud for the cloudDevelopment in the cloud for the cloud
Development in the cloud for the cloudFlorian Georg
 

More from Florian Georg (9)

Behavior-Driven-Development (BDD) for Conversational Applications
Behavior-Driven-Development (BDD) for Conversational ApplicationsBehavior-Driven-Development (BDD) for Conversational Applications
Behavior-Driven-Development (BDD) for Conversational Applications
 
Behaviour-Driven Development for Conversational Applications
Behaviour-Driven Development for Conversational ApplicationsBehaviour-Driven Development for Conversational Applications
Behaviour-Driven Development for Conversational Applications
 
Artificial Intelligence and Cognitive Computing
Artificial Intelligence and Cognitive ComputingArtificial Intelligence and Cognitive Computing
Artificial Intelligence and Cognitive Computing
 
Pillars of DevOps: Platform, Method and Architecture
Pillars of DevOps: Platform, Method and ArchitecturePillars of DevOps: Platform, Method and Architecture
Pillars of DevOps: Platform, Method and Architecture
 
Enterprise PaaS, Cloud-Native Architecture and Microservices
Enterprise PaaS, Cloud-Native Architecture and MicroservicesEnterprise PaaS, Cloud-Native Architecture and Microservices
Enterprise PaaS, Cloud-Native Architecture and Microservices
 
Continuous Delivery of Cloud Applications with Docker Containers and IBM Bluemix
Continuous Delivery of Cloud Applications with Docker Containers and IBM BluemixContinuous Delivery of Cloud Applications with Docker Containers and IBM Bluemix
Continuous Delivery of Cloud Applications with Docker Containers and IBM Bluemix
 
Visual Exploration of Large Data sets with D3, crossfilter and dc.js
Visual Exploration of Large Data sets with D3, crossfilter and dc.jsVisual Exploration of Large Data sets with D3, crossfilter and dc.js
Visual Exploration of Large Data sets with D3, crossfilter and dc.js
 
The IBM Open Cloud Architecture (and Platform)
The IBM Open Cloud Architecture (and Platform)The IBM Open Cloud Architecture (and Platform)
The IBM Open Cloud Architecture (and Platform)
 
Development in the cloud for the cloud
Development in the cloud for the cloudDevelopment in the cloud for the cloud
Development in the cloud for the cloud
 

Recently uploaded

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Building Reactive Apps with Meteor

Editor's Notes

  1. Back in the 90’s … Websites looked and felt pretty much like this IE had a marketshare of around 90 % - While it was the web – it was still pretty „static“ and aligned with the needs single user – use cases
  2. Technologies back then While we tried to build more appealing and interactive apps Used things like Perl for CGI and languages and frameworks that were originally not built for the web PHP was the arguably first scripting language that enabled larger web applications for many of us And the coolest technologies for building engaging client and user experience was Macromedia Flash https://cdn.tutsplus.com/active/uploads/legacy/articles/017_flashStory/img/about-flash4.png http://froebe.net/blog/wp-content/uploads/2010/02/perl.jpeg
  3. Welcome to the age of “Cloud” Fast forward two decades, much has changed and we need to adapt to a new world Find out: how do we build applications for the „age of cloud computing“ What are the impacts on business and delivery models, and what kind of technology can we use to build products in that context
  4. The first thing that I noticed was: This was interesting – back then I was quite happy to move away from brittle web scripting towards “serious” programming languages like Java EE Now what I found interesting is how technologies that were out there for a long time, outgrow their initial limitations and playing grounds during the last years So technologies like JavaScript “matured” into foundations that can now be used to build and operate enterprise-grade Cloud software
  5. These „new old“ technologies provide delivery teams crucial capabilities for business agility: - Get MVPs fast to the market, learn & validate quickly Lean collaboration as integrated teams using common languages on all application layers Elastically scale out and replicate success as your product adoptions grows
  6. Changing demands for modern apps: Deploy and run at any scale – from mobile devices to world-wide distributed cloud clusters Users expect milliseconds respond times And 100% uptime So in the end we want Applications that are Responsive, Resilient , Elastic and Message Driven – these are Reactive Applications
  7. Responsiveness: the system must respond in a timely manner if at all possible. This is the foundation of good UX and enaging systems. Resiliency: Also stays responsive and available in the event of errors – using concepts like replication, isolation and delegation for high-availability Elasticity: Stay responsive under varying workloads – e.g. implies architecture without central bottlenecks, enabling concepts like dynamic sharding, replication and cost-effective scaling Message-driven: All these are enabled non-blockimg. asynchronous message-passing systems components.
  8. When building these reactive applications, we need to solve certain problems over and over again. e.g. Handling user identity, social accounts, permissions Security and access control to protected data collections Application flow handling and routing And finally usually some „glue“ and devOps tooling to integrate all components into
  9. So when looking at the available options on how to build modern software systems, there is a vast number of comparable commercial and open source frameworks to pick and choose from. Research indicates that this can result in a psychological phenomenon called „choice overload“, leading situations where teams waste time on evaluating lots of technology – and being unsatisfied with their choice no matter what. From my perspective, that‘s one reason why opinionated, full-stack frameworks and also PaaS are appealing to many developers.
  10. With the meteor Framework, I‘ll choose one particular example to give a very brief overview of how such a framework can look like. Meteor just raised 11Mi$ VC, and is arguably the most capable and popular platform today to build single-page, reactive, real-time collaborative apps.
  11. What is Meteor ? It is a full stack framework for building reactive web and hybrid mobile apps. It‘s based on Node.js,so async JavaScript from the client to the backend It currently uses MongoDB as a data store And brings a couple of ready-to-use components and tools, e.g. for client templating and build/test/deploy tooling
  12. In order to facilitate quick prototyping, Meteor provides a set of command line tools, and uses a small set of easy conventions, e.g. for project folder structures. Code can either run on the client, the server, or both.
  13. https://www.meteor.com/ddp The foundation is a protocol called DDP (distributed data protocol), which enables Publish/Subscribe and RPC over websockets or HTTP long polling. The data is exchanged as JSON messages, and enables Metor to do low latency „live queries“ against the backend data store. Currently backed by MongoDB. Simple protocol for fetching/live-updates structured data from the server Based on websockets, its like “REST for websockets” Client – Server protocol. While written for Meteor, other implementations are possible (e.g. Objective C) Live query against backend DBs: not just return result, but also real-time stream of create/update/delete messages as the result of the query changes over time Currently for MongoDB (using oplog tailing), experimental for Redis. Read loads scale close to linear Works like a message bus without having to care about PubSub, Potentially the point to watch at massive scale – but pretty good for most SaaS Live query against backend DBs: not just return result, but also real-time stream of create/update/delete messages as the result of the query changes over time Currently for MongoDB (using oplog tailing), experimental for Redis. Read loads scale close to linear Works like a message bus without having to care about PubSub, Potentially the point to watch at massive scale – but pretty good for most SaaS
  14. https://www.meteor.com/tracker Based on the DDP protocol, there‘s the so called Tracker: Lightweight library for transparent reactive programming Lets you build complex event-driven logic without boilderplate event handler code – no more listeners ! It automatically infers code dependencies and invalidates / recalculates as soon as some underlaying data / expression changes It’s like Pub/Sub updates automagically – just write your logic !
  15. The next step in achieving reactivity is making data collections “real time”, e.g. reactive. With meteor, the server publishes a view on the data, and all subscribing clients get automatically updated on changes.
  16. To even more improve reactivity there are advanced concepts transparently buit in, e.g. latency compensation, where the client UI updates don’t have to wait for the server rountrip to finish.
  17. Putting everything together, you can write incredibly productive code, e.g. logic-less UI templates. You don’t need to write data binding code or listening for changes – the UI gets updated in a reactive fashion as soon as the data changes.
  18. Aside from the groundwork, Meteor includes a rich set of common components, e.g. for handling Social Accounts and Authentication, Security and Package Management for building hybrid mobile apps, and others. Aside from that, it’s quite easy to use Node.js packages, although some modifications may be needed.
  19. And finally theres a whole ecosystem of extensions and packages to use.
  20. So I hope you got a good overview of what reactive development is all about, Why meteor is so popular currently. If you want to see more of it, and know e.g. hot to run apps on our bluemix PaaS, Just ping me – I‘m around here. Thanks.