<div dir="ltr">snip:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div class=""><div><br></div></div><div>So do you persist every messages sent via Fabrik? I think we could do this for some things, but we would have to have TTLs for others. We could even have our persistence store honor TTLs that are assigned during queue creation, I think. I wonder if Cassandra has something built in that would make this easy for us.</div>
<div class="">
<div><br></div></div></div></div></div></blockquote><div><br></div><div>Yes. We allow internal clients to assign a 'cache_ttl' for each message. When we persist the message in Cassandra we set that ttl. By default the cache_ttl is 3 days, max is 30 days.</div>
<div><br></div><div>The above applies to persistence by 'path' - each message may have multiple paths - think of a path as a folder for the message that is formatted like a routing key, e.g. 'feeds-item.breaking-news.1224'. Within each path/folder messages are stored latest-first by a timeuuid (uuid version 1). Searches for the 'latest' n messages in a path subtree are very efficient.</div>
<div><br></div><div>Cassandra takes care of deleting them for us and compacting storage - we never delete manually. Similarly, S3 items are automatically deleted.</div><div><br></div><div>We also 'journal' all messages with ttl of 30 days. It has worked well for us and we can easily scale up and down. The fast generalized cache makes it possible to support quite interesting apps.</div>
<div><br></div><div>ml</div></div></div></div>