rd mongo-meetup-2013-05-21
TRANSCRIPT
Meteor & Mongo, a Case StudyPresented 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