<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 15, 2011, at 11:14 AM, Jerry Kuch wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>If a plugin for your store of choice doesn't exist, then one writes a storage plugin, in Erlang, by implementing the rabbit_backing_queue behaviour, which effectively makes up the storage API, and talks to the storage system of your choice.<br></div></blockquote><br></div><div>A couple quick questions about this:</div><div><br></div><div>Should a replacement rabbit_backing_queue be packaged as a regular plugin?</div><div><br></div><div>How would I configure the broker to use my own storage module?</div><div><br></div><div>Should one start with rabbit_variable_queue.erl and replace only the bits that talk to the message store (leaving the memory management logic intact) as a first step?</div><div><br></div><div>It would probably be a good idea to look at the content type of the message to figure out how to store it in the backing store, right (which would open the possibility of working with message data independently of the broker by interrogating its contents)?</div><div><br></div><div>Would it be a bad idea to have store-side code as part of the storage system? In particular, I'm thinking about having Erlang-language M/R code or event triggers which would need to be installed into the server (Riak in this case) to manage indexes and metadata. In general, I don't like the idea of having to install things in more than one place. It would probably make some things considerably easier (and more performant), though.</div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Palatino; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Courier"><br class="Apple-interchange-newline">Thanks!</font></div><div style="font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Courier"><br class="webkit-block-placeholder"></font></div><div style="font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Courier">Jon Brisbin</font></div><div style="font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Courier"><br></font></div><div style="font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Courier">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Web: <a href="http://jbrisbin.com/">http://jbrisbin.com/</a></font></div><div style="font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Courier">&nbsp;&nbsp; &nbsp;Twitter: @j_brisbin</font></div><div style="font-family: Helvetica; font-size: 12px; "><font class="Apple-style-span" face="Courier">&nbsp;&nbsp; &nbsp; &nbsp;Skype: jon.brisbin</font></div></span>
</div>
<br></body></html>