We store code/data in zookeeper and riak. We serialize these using nippy. You can get notified on changes using zookeeper watchers on the nodes storing either children changes or changes to the node data as you wish.
We are highly satisfied with this, we also store configuration data in zookeeper. We use clj-zookeeper directly. You can also have a look at avout, it implements locks, shared atoms, ... This may shield you from some zookeeper implementation details. We stayed away from avout mainly because we have strict performance real time requirements to meet. It's easier for us to monitor these through our own thin code layers wrapping specific semantics and decide were we want to store stuff (zookeeper or riak or as a combo). We run on clusters of small to server grade computers and needed a zero maintenance scalable solution. With bigger backbones and the kind of use you have in mind, I would look at avout first. Beware that zookeeper has a 1mbytes data size limit per node and I do not think that avout circumvent this limit. This may impact you or not depending on the size of what you intend to store. We implemented an overspill to a riak bucket in some of our abstractions to overcome this limit while keeping the anchor in the zookeeper node space. Since riak is also cluster aware it runs everywhere as zookeeper, it does not impact us maintenance wise other than a job we run from time to time to see if discrepancies appear over time between a zookeeper parent node children and the key/value stored in the corresponding riak bucket. You could also chunk data as zookeeper sequential nodes under a root node and concatenate their data chunks back together. If there is no high usage of this feature it will be acceptable performance wise. Initially we implemented queues like this on top of zookeeper and performed reasonably well for our needs. Hope this helps, Luc P. > Hi, > > I'm wondering what approaches people take if they want to have Clojure code > loaded at runtime from some data store. > > We operate a large website and I'd like the ability to deploy our mustache > templates & immediate corresponding clojure code at will, rolling back etc > if need be, without having to redeploy the host application. > > I'm interested in what a potential dev process would look like, i.e. I > still want the Clojure files on the local file system editable in Emacs > (maybe through git submodules). I'm thinking the solution is to have a > command line tool / build process that uploads a targeted module (template > + Clojure code) into the data store (i.e. using Avout on ZooKeeper, or > Datomic, whatever) and the main running application is notified that > something has changed. We would then have a small management app on top of > this where you can roll back between different revisions of the modules. > > Not looking to reinvent any wheels here, more wondering what others have > done, > > thanks. > > -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > -- Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail from my ipad! -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.