Mathias Meyer edited this page Oct 15, 2010 · 9 revisions

Nanite is a self-assembling fabric of Ruby daemons. A cluster of agents expose a set of tasks you call using a URI-like syntax, and it’s easy to scale the cluster up and down depending on the work load.

Current Status

There’s currently heavy rework on the mapper
internals, possibly including features being removed or changed in their behavior. The work being done aims to
simplify Nanite, separate concerns in the mapper, and make it more stable and reliable.

Scheduled for removal are:

  • File streaming
  • The admin interface (though it’s not unlikely to come back in a different way, the binding to EM/Thin makes it a bit
    useless for most people)
  • Intermediate messages. They can be achieved using simple pushes sent from an agent in a very similar manner.
    Intermediate messaging requires too much state kept in the mapper, which is lost when they go down.

Scheduled for change:

  • Requests. They require state in the mapper, which is kept in memory and lost should the mapper go down.
    Alternatives are to either remove them, or to include the the block inside the message so that it is
    self-contained. That way the block would loose its original context though, but that’d foster the idea of as little
    shared state as possible.

Comments on all this more than welcome on the mailing list, here’s the original changes and the reasoning behind them laying out the changes.


See the installation pages for specific systems for details. If you have RabbitMQ up and running, just do:

    gem install nanite


Send a pull request, open a ticket, or get in touch through the mailing list. Please add tests for your fixes.

Getting Support