Merb + Nanite

Uploaded on

This is my keynote from MerbCamp, where I talk about merb past and present as well as introduce nanite a self assembling cluster of ruby processes

This is my keynote from MerbCamp, where I talk about merb past and present as well as introduce nanite a self assembling cluster of ruby processes

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Merb then and now Ezra Zygmuntowicz
  • 2. Merb Then Sept 21st 2006 AKA Baby Merb
  • 3. Merb Now • merb-core • merb-action-args • merb-haml • merb-assets • merb-helpers • merb-auth • merb-jquery • merb-builder • merb-mailer • merb-cache • merb-parts • merb-gen • merb-slices
  • 4. Core Tenets of Merb
  • 5. Merb should be fast (no code is faster then no code)
  • 6. Merb should be memory efficient
  • 7. Merb code should be as simple as possible
  • 8. Merb should be modular
  • 9. Merb should be easy to grok and extend (by hackers for hackers)
  • 10. Merb should focus on the application server as well as the web framework
  • 11. Merb should get out of your way and be *flexible*
  • 12. Most Importantly Merb should be an experimentation ground
  • 13. Why not just work on rails?
  • 14. Monoculture is bad
  • 15. Everyone wins when there is competition
  • 16. Lot’s of merb’s lessons can be applied back to rails
  • 17. Merb-1.0RC drops tomorrow! Huge thanks to the community and all contributors
  • 18. merb-stack: training wheels included
  • 19. Now with that out of the way...
  • 20. Introducing Nanite
  • 21. Nanite is a new way of building scalable backends for web apps
  • 22. Built around RabbitMQ • Written in erlang, clusterable, highly scalable, fast as hell. • AMQP protocol provides many nice features • Transient, Persistent and Transactional semantics
  • 23. <3 RabbitMQ
  • 24. Nanite agents consist of multiple Actors
  • 25. Nanite agents advertise their services and status Feeds#crawl advertises: /feeds/crawl Load average is advertised as default status
  • 26. Nanite Mappers Track nanites and their advertised services and status Can do dispatch based on a number of factors Run inside your Merb or Rails app State of all nanites is replicated across all mappers
  • 27. Multiple Dispatch Styles
  • 28. Least loaded dispatch and the fitness function
  • 29. Agents ping the mapper exchange every @ping_time seconds. Mappers track the state of all nanites and remove them from mapping if they haven’t reported in within a timeout
  • 30. Nanite gives us: • Presence, we know when nanites are ready for requests or not. • Self assembly, nanites can come and go and can run anywhere with zero configuration in the mappers. • Dispatch based on load or any fitness function that suits your app • Easily take advantage of cloud
  • 31. File Streaming
  • 32. Nanite makes it easy to scale web app backends Git it on GitHub:
  • 33. Questions?