You are on page 1of 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
Doesnt 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 Mongos 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, meteortalk), 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