• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Merb + Nanite

Merb + Nanite



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



Total Views
Views on SlideShare
Embed Views



40 Embeds 2,820

http://brainspl.at 2586
http://blog.engineyard.com 67
http://www.brainspl.at 38
http://www.engineyard.com 28
http://www.merboverheard.com 20
http://www.slideshare.net 16
http://web.archive.org 8
http://merboverheard.com 8
http://mublag.boinkor.net 5
http://www.soup.io 5 4
http://www.techgig.com 3
http://antifuchs.soup.io 3
http://www.lotteryresultsbyemail.co.uk 2
https://blog.engineyard.com 2
http://planetrails.digitalcodes.org 1
http://planet.o9y.net 1
http://planetrubyonrails.net 1
http://www.el-gordolottery.com 1
http://www.newsgator.com 1
http://webcache.googleusercontent.com 1
http://fanyi.youdao.com 1
http://bgror.com 1
https://www.engineyard.com 1
http://www.hanrss.com 1
http://www.euromillions2009.com 1
http://www.resultseuromillions.co.uk 1
http://electricsheep.wikispaces.com 1
http://spatialmediagroup.wikispaces.com 1
http://www.lotterydvd.com 1
http://mathias.soup.io 1
http://non_humana.soup.io 1
http://metalab.soup.io 1
http://sofias.soup.io 1
http://www.planetlotto.co.uk 1
http://static.slideshare.net 1
http://www.elotteryforums.com 1
http://www.lotteryresults2009.com 1
http://www.euromillionsresults2009.com 1
http://ec2-174-129-7-73.compute-1.amazonaws.com 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.


11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Merb + Nanite Merb + Nanite Presentation Transcript

    • Merb then and now Ezra Zygmuntowicz http://engineyard.com
    • Merb Then Sept 21st 2006 http://pastie.org/14416 AKA Baby Merb
    • 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
    • Core Tenets of Merb
    • Merb should be fast (no code is faster then no code)
    • Merb should be memory efficient
    • Merb code should be as simple as possible
    • Merb should be modular
    • Merb should be easy to grok and extend (by hackers for hackers)
    • Merb should focus on the application server as well as the web framework
    • Merb should get out of your way and be *flexible*
    • Most Importantly Merb should be an experimentation ground
    • Why not just work on rails?
    • Monoculture is bad
    • Everyone wins when there is competition
    • Lot’s of merb’s lessons can be applied back to rails
    • Merb-1.0RC drops tomorrow! Huge thanks to the community and all contributors
    • merb-stack: training wheels included
    • Now with that out of the way...
    • Introducing Nanite
    • Nanite is a new way of building scalable backends for web apps
    • Built around RabbitMQ • Written in erlang, clusterable, highly scalable, fast as hell. • AMQP protocol provides many nice features • Transient, Persistent and Transactional semantics
    • <3 RabbitMQ
    • Nanite agents consist of multiple Actors
    • Nanite agents advertise their services and status Feeds#crawl advertises: /feeds/crawl Load average is advertised as default status
    • 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
    • Multiple Dispatch Styles
    • Least loaded dispatch and the fitness function
    • 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
    • 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
    • File Streaming
    • Nanite makes it easy to scale web app backends Git it on GitHub: http://github.com/ezmobius/nanite
    • Questions?