Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Databases and agile development - Dwight Merriman (MongoDB)

1,616 views

Published on

Presented as a keynote at JAX London 2013

Much has been made of scalability as a driver for choosing a database, but the choice of a database influences much more than the scaling architecture. Different database choices drive different data models which in turn influence the development process.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Databases and agile development - Dwight Merriman (MongoDB)

  1. 1. Databases and Agile Development Dwight Merriman MongoDB
  2. 2. • What is the first thing you think of when you hear “RDBMS”? • What is the first thing you think of when you hear “SQL”? • What is the first thing you think of when you hear “NoSQL”?
  3. 3. New data models create an opportunity to innovate
  4. 4. Dynamic schemas Facilitate agile But there is a schema! It evolves some of course
  5. 5. { _id : “too_big_to_fail”, title : “Too Big to Fail”, author : “joe123”, when : “2008-12-03”, body_text : “…”, }
  6. 6. { _id : “too_big_to_fail”, title : “Too Big to Fail”, author : “joe123”, when : “2008-12-03”, body_text : “…”, comments : [ { who:”jane”, comment:”I don’t think so…”, when:”2008-12-04” }, … ] }
  7. 7. { _id : “too_big_to_fail”, title : “Too Big to Fail”, author : “joe123”, when : “2008-12-03”, body_text : “…”, comments : [ { who:”jane”, comment:”I don’t think so…”, when:”2008-12-04” }, … ] } db.posts.find( { “who”:”jane” } )
  8. 8. { _id : “too_big_to_fail”, title : “Too Big to Fail”, author : “joe123”, when : “2008-12-03”, body_text : “…”, comments : [ { who:”jane”, comment:”I don’t think so…”, when:”2008-12-04” }, … ], votes : 3, voters : [‘joe123’,’kblm’,’dwight’] }
  9. 9. { _id : “too_big_to_fail”, title : “Too Big to Fail”, author : “joe123”, when : “2008-12-03”, body_text : “…”, comments : [ { who:”jane”, comment:”I don’t think so…”, when:”2008-12-04” }, … ], votes : 3, voters : [‘joe123’,’kblm’,’dwight’] } db.posts.update( {_id:“too_big_to_fail” , voters:{$ne:”jjelm”}}, {$inc:{votes:1}, $push:{voters:”jjelm”} } )
  10. 10. Static vs Dynamic int x = “abc”; // java var x = “abc”; // javascript
  11. 11. Static vs Dynamic int x = “abc”; // java var x = “abc”; // javascript UPDATE items SET x = “abc”
  12. 12. SOA & Agile B A C { x : 3, desc : “thing” } D
  13. 13. SOA & Agile B A C { x : 3, desc : “thing”, loc : [20.3, 24.732] } D
  14. 14. Further thoughts on writing apps today Store first, ask questions later “speculative storage”
  15. 15. Further thoughts on writing apps today Default to real-time
  16. 16. Thanks

×