<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:14pt"><div><span><font size="4">Chris,</font></span></div><div style="color: rgb(0, 0, 0); font-size: 18px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span><font size="4"><br></font></span></div><div style="color: rgb(0, 0, 0); font-size: 18px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span><font size="4">This started out as a learning project... and now that I have put time into it, I thought it would be fun to use is ;)</font></span></div><div style="color: rgb(0, 0, 0); font-size: 18px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span><font size="4"><br></font></span></div><div style="color: rgb(0, 0, 0); font-size: 18px; font-family: arial, helvetica, sans-serif; background-color:
 transparent; font-style: normal; "><span><font size="4">I might have made some bad assumptions about Riak and Couchbase, but I thought they were more power than I needed while </font><span style="font-size: 19px;">simultaneously </span><font size="4">not serving my use-case. </font></span></div><div style="font-family: arial, helvetica, sans-serif; font-size: 19px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; "><span><br></span></div><div style="background-color: transparent; "><span style="font-size: 19px;">You can think of my application as a Hotel Management application with domain objects that need to be cached that have a Type and a Scope. Type is like: Housekeeping Request, Room Service Request, Guest Visit, Room, etc. A Scope would be 2nd floor, 3rd floor, West Tower, etc. Clients typically want to pole the cache for changes to these objects since their last pole. So there might be a client that
 shows all things having to do with the Scope of 2nd floor (all Housekeeping, Guest Visits, etc. having to do with the 2nd Floor). This client might pole every 10 seconds wanting the adds, updates and deletes since its last pole. Another client might want to visualize all Housekeeping Requests (doesn't care about the Scope). Changes need to be ACIDic with respect to a given Scope and or Type </span></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-size: 19px; font-family: arial, helvetica, sans-serif; font-style: normal; "><span style="font-size: 19px;"><br></span></div><div style="background-color: transparent; "><span><span style="font-size: 19px;">It didn't seem that either Riak nor Couhbase were a great fit for this. </span></span><span style="font-size: 18px; ">Again, I might have made some poor assumptions...</span></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-size: 19px; font-family:
 arial, helvetica, sans-serif; font-style: normal; "><span style="font-size: 19px;"> </span></div>  <div style="font-family: arial, helvetica, sans-serif; font-size: 14pt; "> <div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Chris Hicks <silent_vendetta@hotmail.com><br> <b><span style="font-weight: bold;">To:</span></b> jrosenblum@prodigy.net; erlang-questions@erlang.org <br> <b><span style="font-weight: bold;">Sent:</span></b> Saturday, October 27, 2012 5:10 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> RE: [erlang-questions] Did I do it right?<br> </font> </div> <br><div id="yiv2142350319">

<style><!--
#yiv2142350319 .yiv2142350319hmmessage P
{
margin:0px;padding:0px;}
#yiv2142350319 body.yiv2142350319hmmessage
{
font-size:10pt;font-family:Tahoma;}
--></style>
<div><div dir="ltr">
I honestly can't say how good your code is myself but have you taken a look at Riak and Couchbase? Both solve exactly these problems, though admittedly in different ways. Riak would give you HTTP api while Couchbase has officially supported 'smart clients' in various languages, including Java. My boss was leery of allowing Erlang into our ecosystem since I'd be the only one who knew anything about it but Couchbase fit our needs so well we are modifying our entire infrastructure around it. I still haven't told him it's written primarily in Erlang :)<div><br></div><div>Chris<br><br><div><div id="yiv2142350319SkyDrivePlaceholder"></div><hr id="yiv2142350319stopSpelling">Date: Thu, 25 Oct 2012 14:08:14 -0700<br>From: jrosenblum@prodigy.net<br>To: erlang-questions@erlang.org<br>Subject: [erlang-questions] Did I do it right?<br><br><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: arial, helvetica, sans-serif; font-size: 14pt;
 "><div style="font-family: arial, helvetica, sans-serif; font-size: 14pt; "><span style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">Kind and Wise List;</span><br></div><div style="font-family: arial, helvetica, sans-serif; "><div style="font-family: 'times new roman', 'new york', times, serif; "><div id="yiv2142350319ecxyiv1830009802"><div><div><font size="3"><span></span></font><br><span style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "> For selfish and professional reasons, I regularly attempt medium-to-deep dives on interesting technologies (Ruby, Go, etc.), and about 12 months ago I started looking at Erlang. I have become a huge fan of the entire Erlang Ecosystem and have tried to be a good student. </span><br><font size="3"><span></span></font><br><span style="font-family: 'new york', times, serif; font-size: 12pt; ">Like many, I taught myself by reading the usual books,
 going to the usual websites, looking at existing projects, following this list and participating in stackoverflow.  And, like many I suspect, I wrote a cache ;)</span><br><font size="3"><span></span></font><br><span><font size="3">What I wrote could solve a problem for my company which builds and deploys an enterprise application which needs to cache domain-objects (assembled from a variety of Oracle or MSSQL tables) and provide them to web clients. We currently use an in-process cache that is part of a fairly typical Java-stack application. Unfortunately it is difficult to cluster, and it doesn't provide us with the level of control and specialization that we would like. A successful cache needs to be available on 2 or 3 nodes for redundancy and to handle load</font>. There are 200 - 400 clients producing about <font size="3">50 transactions per second bursting to about 200 transactions per second for a few minutes at
 a time (probably 80% reads). Our software is installed in customer's data centers - no public Internet involvement. What I wrote would seem to fulfill these requirements.</font></span><br><font size="3"><span></span></font><br><span style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">As a company, based on my enthusiasm, we are considering Erlang, and my cache is going to be looked at as a reference implementation, learning tool and poc. </span><br><font size="3"><span></span></font><br><span style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">What I don't know is: Did I create a piece of crap example of Erlang that does the entire community a disservice; or, did I do a reasonable job of representing what could, and should, be done with the technology?</span><br><font size="3"><span></span></font><br><span style="font-family: 'times new roman', 'new york', times, serif; font-size:
 12pt; ">If anyone is feeling charitable, and wouldn't mind helping develop a good Erlang Citizen, I would appreciate any comments or suggestions on what I have done. </span><br><font size="3"><span></span></font><br><span style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">It can be found at </span><span style="font-family: 'times new roman', 'new york', times, serif; font-size: 15px; line-height: 19px; white-space: nowrap; "><a rel="nofollow" target="_blank" href="https://github.com/jr0senblum/JCache">https://github.com/jr0senblum/JCache</a></span></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><font face=".HelveticaNeueUI"><span style="font-size:15px;line-height:19px;white-space:nowrap;"><br></span></font></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><font face=".HelveticaNeueUI"><span
 style="font-size:15px;line-height:19px;white-space:nowrap;">If this is an inappropriate request, I apologize and please feel free to ignore this all together.</span></font></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><font face=".HelveticaNeueUI"><span style="font-size:15px;line-height:19px;white-space:nowrap;"><br></span></font></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><font face=".HelveticaNeueUI"><span style="font-size:15px;line-height:19px;white-space:nowrap;">Thanks in advance,<br></span></font><span style=""></span><br><span style="">Jr0</span></div></div></div><br><br> </div> </div>  </div><br>_______________________________________________
erlang-questions mailing list
erlang-questions@erlang.org
http://erlang.org/mailman/listinfo/erlang-questions</div></div>                                       </div></div>
</div><br><br> </div> </div>  </div></body></html>