SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Meteor & Mongo, a Case Study
Presented by: David Wihl
What is Meteor?
• a 14 month old very ambitious JavaScript
framework
• Include client and server side
• Uses Mongo as default / only persistence
Meteor Highlights
• Reactivity
• Super easy data sync
• Client and server consistency
• Hot Code Pushes
• Smart packages / NPM happiness
Gander
• Next-gen mobile email triage client
• Hoped to use HTML5 to be multiplatform
Ref: http://www.emailmonday.com/mobile-email-usage-statistics
Gander Demo
Our Experience with Meteor
• Started as UX prototype only in Sept
• After security added in Oct, added real users
• By no means experts at Mongo
• Pushing platform pretty hard
Gander Architecture
We Mongo
• Centerpiece of our app
• Myriad of hosting and on prem options
– Currently using MongoHQ + EC2
• Changed schema numerous times
• Good for semi-structured data like email
Goodness of Meteor
• Easy to prototype
• Symmetric on client and server (minimongo)
• Nice pub/sub model, DDP
• Great bunch of guys, moving quickly
• Easy deploy, wrapped Mongo
• All open source
Not so Goodness
• Work in progress: 0.6.3 < 1.0
• Performance
– cf. findOne
• Missing Mongo features, e.g Replica set
Here Be Dragons…
• Doesn’t use Mongo security model
• Uses Fibers to wrap async node calls
– Can still access Mongo directly
• Young MVC Design Patterns
• Need to host Mongo elsewhere than
meteor.com for direct access
Aggregation Example
Meteor Corp Biz Model
• Eventually enter the hosting biz via Galaxy
• How will that relate to Mongo’s advanced
options and current hosting choices?
• What about on-prem?
Learn More
• www.meteor.com
• http://www.discovermeteor.com/
• http://www.ripariandata.com/blog/meteor-resources
• SO, Google Groups (meteor-core, meteor-
talk), Google+
Questions for the Audience
• Should we store attachments in S3 or GridFS?
• What gotchas exist in a REST front end to
Mongo? Node.js or Rails?
• Anyone used Mongo 2.4 full text search yet?
Conclusions
• In our opinion, Meteor is the best JS
framework out there
• Symmetric data is super useful
• It’s a work-in-progress with great potential
• Worth trying some prototype apps

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJSZahid Mahir
 
Stellar SPA's with Meteor.js
Stellar SPA's with Meteor.jsStellar SPA's with Meteor.js
Stellar SPA's with Meteor.jsBradley Cypert
 
Usersnap and the javascript magic behind the scenes - ViennaJS
Usersnap and the javascript magic behind the scenes - ViennaJSUsersnap and the javascript magic behind the scenes - ViennaJS
Usersnap and the javascript magic behind the scenes - ViennaJSUsersnap
 
Session dotNed Saturday 28 januari 2017
Session dotNed Saturday 28 januari 2017Session dotNed Saturday 28 januari 2017
Session dotNed Saturday 28 januari 2017Gerald Versluis
 
Supporting large scale React applications
Supporting large scale React applicationsSupporting large scale React applications
Supporting large scale React applicationsMaurice De Beijer [MVP]
 
MEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopMEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopValeri Karpov
 
Javascript Myths and its Evolution
Javascript Myths and its  EvolutionJavascript Myths and its  Evolution
Javascript Myths and its EvolutionDeepu S Nath
 
Building large scalable mission critical business applications on the web
Building large scalable mission critical business applications on the webBuilding large scalable mission critical business applications on the web
Building large scalable mission critical business applications on the webMaurice De Beijer [MVP]
 
Fine tuning Hybrid Mobile App
Fine tuning Hybrid Mobile AppFine tuning Hybrid Mobile App
Fine tuning Hybrid Mobile AppAllan Tan
 
Intro to Knockout.JS for Salesforce1
Intro to Knockout.JS for Salesforce1Intro to Knockout.JS for Salesforce1
Intro to Knockout.JS for Salesforce1Boris Bachovski
 
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGReducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGMaarten Balliauw
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN StackValeri Karpov
 
Performance optimization - Basics
Performance optimization - BasicsPerformance optimization - Basics
Performance optimization - BasicsFilip Mares
 
Performance optimization - Advanced techniques
Performance optimization - Advanced techniquesPerformance optimization - Advanced techniques
Performance optimization - Advanced techniquesFilip Mares
 
Performance optimization - JavaScript
Performance optimization - JavaScriptPerformance optimization - JavaScript
Performance optimization - JavaScriptFilip Mares
 
Virtual Reality on the Web
Virtual Reality on the WebVirtual Reality on the Web
Virtual Reality on the WebTimmy Kokke
 

Was ist angesagt? (20)

Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
Stellar SPA's with Meteor.js
Stellar SPA's with Meteor.jsStellar SPA's with Meteor.js
Stellar SPA's with Meteor.js
 
Usersnap and the javascript magic behind the scenes - ViennaJS
Usersnap and the javascript magic behind the scenes - ViennaJSUsersnap and the javascript magic behind the scenes - ViennaJS
Usersnap and the javascript magic behind the scenes - ViennaJS
 
Session dotNed Saturday 28 januari 2017
Session dotNed Saturday 28 januari 2017Session dotNed Saturday 28 januari 2017
Session dotNed Saturday 28 januari 2017
 
Journey to Go
Journey to GoJourney to Go
Journey to Go
 
MEAN stack
MEAN stackMEAN stack
MEAN stack
 
Supporting large scale React applications
Supporting large scale React applicationsSupporting large scale React applications
Supporting large scale React applications
 
Vue.JS Hello World
Vue.JS Hello WorldVue.JS Hello World
Vue.JS Hello World
 
MEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona WorkshopMEAN Stack WeNode Barcelona Workshop
MEAN Stack WeNode Barcelona Workshop
 
Javascript Myths and its Evolution
Javascript Myths and its  EvolutionJavascript Myths and its  Evolution
Javascript Myths and its Evolution
 
Building large scalable mission critical business applications on the web
Building large scalable mission critical business applications on the webBuilding large scalable mission critical business applications on the web
Building large scalable mission critical business applications on the web
 
Fine tuning Hybrid Mobile App
Fine tuning Hybrid Mobile AppFine tuning Hybrid Mobile App
Fine tuning Hybrid Mobile App
 
Intro to Knockout.JS for Salesforce1
Intro to Knockout.JS for Salesforce1Intro to Knockout.JS for Salesforce1
Intro to Knockout.JS for Salesforce1
 
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGReducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAG
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
 
Taming 3rd party content
Taming 3rd party contentTaming 3rd party content
Taming 3rd party content
 
Performance optimization - Basics
Performance optimization - BasicsPerformance optimization - Basics
Performance optimization - Basics
 
Performance optimization - Advanced techniques
Performance optimization - Advanced techniquesPerformance optimization - Advanced techniques
Performance optimization - Advanced techniques
 
Performance optimization - JavaScript
Performance optimization - JavaScriptPerformance optimization - JavaScript
Performance optimization - JavaScript
 
Virtual Reality on the Web
Virtual Reality on the WebVirtual Reality on the Web
Virtual Reality on the Web
 

Andere mochten auch

Frazier tara 3_a_walking_trails
Frazier tara 3_a_walking_trailsFrazier tara 3_a_walking_trails
Frazier tara 3_a_walking_trailsTara Frazier
 
BrightOwl Facts & Figures
BrightOwl Facts & FiguresBrightOwl Facts & Figures
BrightOwl Facts & FiguresArianne Hermans
 
Mapa Conceptual Penal LOPNNA
Mapa Conceptual Penal LOPNNAMapa Conceptual Penal LOPNNA
Mapa Conceptual Penal LOPNNAROSGIM
 
Smart goals 2009
Smart goals 2009Smart goals 2009
Smart goals 2009janefreund
 
Web конструирование на html
Web конструирование на htmlWeb конструирование на html
Web конструирование на htmlANefyodova
 
Christopher Bingham, Crimson Hexagon: Better Algorithms from Bigger Data
Christopher Bingham, Crimson Hexagon: Better Algorithms from Bigger DataChristopher Bingham, Crimson Hexagon: Better Algorithms from Bigger Data
Christopher Bingham, Crimson Hexagon: Better Algorithms from Bigger DataClaire Willett
 
Search and Employ: How to Use Social Media to Locate, Build and Maintain Comm...
Search and Employ: How to Use Social Media to Locate, Build and Maintain Comm...Search and Employ: How to Use Social Media to Locate, Build and Maintain Comm...
Search and Employ: How to Use Social Media to Locate, Build and Maintain Comm...Claire Willett
 
Mapa Conceptual Penal LOPNNA
Mapa Conceptual Penal LOPNNAMapa Conceptual Penal LOPNNA
Mapa Conceptual Penal LOPNNAROSGIM
 
Nursing Transurethral Resection of the Prostate
Nursing Transurethral Resection of the ProstateNursing Transurethral Resection of the Prostate
Nursing Transurethral Resection of the ProstateLadyKFI
 
Abdominal aortic aneurysm
Abdominal aortic aneurysm Abdominal aortic aneurysm
Abdominal aortic aneurysm LadyKFI
 

Andere mochten auch (11)

Frazier tara 3_a_walking_trails
Frazier tara 3_a_walking_trailsFrazier tara 3_a_walking_trails
Frazier tara 3_a_walking_trails
 
Test
TestTest
Test
 
BrightOwl Facts & Figures
BrightOwl Facts & FiguresBrightOwl Facts & Figures
BrightOwl Facts & Figures
 
Mapa Conceptual Penal LOPNNA
Mapa Conceptual Penal LOPNNAMapa Conceptual Penal LOPNNA
Mapa Conceptual Penal LOPNNA
 
Smart goals 2009
Smart goals 2009Smart goals 2009
Smart goals 2009
 
Web конструирование на html
Web конструирование на htmlWeb конструирование на html
Web конструирование на html
 
Christopher Bingham, Crimson Hexagon: Better Algorithms from Bigger Data
Christopher Bingham, Crimson Hexagon: Better Algorithms from Bigger DataChristopher Bingham, Crimson Hexagon: Better Algorithms from Bigger Data
Christopher Bingham, Crimson Hexagon: Better Algorithms from Bigger Data
 
Search and Employ: How to Use Social Media to Locate, Build and Maintain Comm...
Search and Employ: How to Use Social Media to Locate, Build and Maintain Comm...Search and Employ: How to Use Social Media to Locate, Build and Maintain Comm...
Search and Employ: How to Use Social Media to Locate, Build and Maintain Comm...
 
Mapa Conceptual Penal LOPNNA
Mapa Conceptual Penal LOPNNAMapa Conceptual Penal LOPNNA
Mapa Conceptual Penal LOPNNA
 
Nursing Transurethral Resection of the Prostate
Nursing Transurethral Resection of the ProstateNursing Transurethral Resection of the Prostate
Nursing Transurethral Resection of the Prostate
 
Abdominal aortic aneurysm
Abdominal aortic aneurysm Abdominal aortic aneurysm
Abdominal aortic aneurysm
 

Ähnlich wie Meteor & Mongo Case Study - How We Built Gander Email App

Mongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongoDB
 
Scaling Prometheus on Kubernetes with Thanos
Scaling Prometheus on Kubernetes with ThanosScaling Prometheus on Kubernetes with Thanos
Scaling Prometheus on Kubernetes with ThanosThomas Riley
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community EngineCommunity Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community enginemathraq
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive uiPaul van Zyl
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksDejan Glozic
 
Node and Micro-Services at IBM
Node and Micro-Services at IBMNode and Micro-Services at IBM
Node and Micro-Services at IBMDejan Glozic
 
Surrogate dependencies (in node js) v1.0
Surrogate dependencies  (in node js)  v1.0Surrogate dependencies  (in node js)  v1.0
Surrogate dependencies (in node js) v1.0Dinis Cruz
 
C4ainaction-Introduction to the Pyramid Web Framework
C4ainaction-Introduction to the Pyramid Web FrameworkC4ainaction-Introduction to the Pyramid Web Framework
C4ainaction-Introduction to the Pyramid Web FrameworkFrancis Addai
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationAndrew Morgan
 
Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor Revolution: From DDP to Blaze Reactive Rendering Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor Revolution: From DDP to Blaze Reactive Rendering Massimo Sgrelli
 
TDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDBTDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDBValeri Karpov
 
Developing and Testing a MongoDB and Node.js REST API
Developing and Testing a MongoDB and Node.js REST APIDeveloping and Testing a MongoDB and Node.js REST API
Developing and Testing a MongoDB and Node.js REST APIAll Things Open
 
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...Weaveworks
 
Silicon Valley Code Camp 2014 - Advanced MongoDB
Silicon Valley Code Camp 2014 - Advanced MongoDBSilicon Valley Code Camp 2014 - Advanced MongoDB
Silicon Valley Code Camp 2014 - Advanced MongoDBDaniel Coupal
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 

Ähnlich wie Meteor & Mongo Case Study - How We Built Gander Email App (20)

Mongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-finalMongodb at-gilt-groupe-seattle-2012-09-14-final
Mongodb at-gilt-groupe-seattle-2012-09-14-final
 
Scaling Prometheus on Kubernetes with Thanos
Scaling Prometheus on Kubernetes with ThanosScaling Prometheus on Kubernetes with Thanos
Scaling Prometheus on Kubernetes with Thanos
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt Groupe
 
Jayway Web Tech Radar 2015
Jayway Web Tech Radar 2015Jayway Web Tech Radar 2015
Jayway Web Tech Radar 2015
 
TYPO3 v8 LTS in the cloud
TYPO3 v8 LTS in the cloudTYPO3 v8 LTS in the cloud
TYPO3 v8 LTS in the cloud
 
All about that reactive ui
All about that reactive uiAll about that reactive ui
All about that reactive ui
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New Tricks
 
Node and Micro-Services at IBM
Node and Micro-Services at IBMNode and Micro-Services at IBM
Node and Micro-Services at IBM
 
Django course
Django courseDjango course
Django course
 
Surrogate dependencies (in node js) v1.0
Surrogate dependencies  (in node js)  v1.0Surrogate dependencies  (in node js)  v1.0
Surrogate dependencies (in node js) v1.0
 
C4ainaction-Introduction to the Pyramid Web Framework
C4ainaction-Introduction to the Pyramid Web FrameworkC4ainaction-Introduction to the Pyramid Web Framework
C4ainaction-Introduction to the Pyramid Web Framework
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestration
 
Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor Revolution: From DDP to Blaze Reactive Rendering Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor Revolution: From DDP to Blaze Reactive Rendering
 
TDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDBTDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDB
 
Developing and Testing a MongoDB and Node.js REST API
Developing and Testing a MongoDB and Node.js REST APIDeveloping and Testing a MongoDB and Node.js REST API
Developing and Testing a MongoDB and Node.js REST API
 
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...
Project Frankenstein: A multitenant, horizontally scalable Prometheus as a se...
 
Silicon Valley Code Camp 2014 - Advanced MongoDB
Silicon Valley Code Camp 2014 - Advanced MongoDBSilicon Valley Code Camp 2014 - Advanced MongoDB
Silicon Valley Code Camp 2014 - Advanced MongoDB
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 

Meteor & Mongo Case Study - How We Built Gander Email App

  • 1. Meteor & Mongo, a Case Study Presented by: David Wihl
  • 2. What is Meteor? • a 14 month old very ambitious JavaScript framework • Include client and server side • Uses Mongo as default / only persistence
  • 3. Meteor Highlights • Reactivity • Super easy data sync • Client and server consistency • Hot Code Pushes • Smart packages / NPM happiness
  • 4. Gander • Next-gen mobile email triage client • Hoped to use HTML5 to be multiplatform Ref: http://www.emailmonday.com/mobile-email-usage-statistics
  • 6. Our Experience with Meteor • Started as UX prototype only in Sept • After security added in Oct, added real users • By no means experts at Mongo • Pushing platform pretty hard
  • 8. We Mongo • Centerpiece of our app • Myriad of hosting and on prem options – Currently using MongoHQ + EC2 • Changed schema numerous times • Good for semi-structured data like email
  • 9. Goodness of Meteor • Easy to prototype • Symmetric on client and server (minimongo) • Nice pub/sub model, DDP • Great bunch of guys, moving quickly • Easy deploy, wrapped Mongo • All open source
  • 10. Not so Goodness • Work in progress: 0.6.3 < 1.0 • Performance – cf. findOne • Missing Mongo features, e.g Replica set
  • 11. Here Be Dragons… • Doesn’t use Mongo security model • Uses Fibers to wrap async node calls – Can still access Mongo directly • Young MVC Design Patterns • Need to host Mongo elsewhere than meteor.com for direct access
  • 13. Meteor Corp Biz Model • Eventually enter the hosting biz via Galaxy • How will that relate to Mongo’s advanced options and current hosting choices? • What about on-prem?
  • 14. Learn More • www.meteor.com • http://www.discovermeteor.com/ • http://www.ripariandata.com/blog/meteor-resources • SO, Google Groups (meteor-core, meteor- talk), Google+
  • 15. Questions for the Audience • Should we store attachments in S3 or GridFS? • What gotchas exist in a REST front end to Mongo? Node.js or Rails? • Anyone used Mongo 2.4 full text search yet?
  • 16. Conclusions • In our opinion, Meteor is the best JS framework out there • Symmetric data is super useful • It’s a work-in-progress with great potential • Worth trying some prototype apps