<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:14pt"><div><span>Gleb,</span></div><div style="color: rgb(0, 0, 0); font-size: 19px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 19px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span>Thanks for taking a look...</span></div><div style="color: rgb(0, 0, 0); font-size: 19px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 19px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span>I wanted to understand better what was going on with OTP, and I thought that rolling my own OTP-  Supervisor-compliant process would
 help. I thought that one day I might need to write my own. I sort of forgot that I did that - I will replace it with a gen-server. </span></div><div style="color: rgb(0, 0, 0); font-size: 19px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 19px; font-family: arial, helvetica, sans-serif; background-color: transparent; font-style: normal; "><span><br></span></div><div><span></span></div><div><br></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> Gleb Peregud <gleber.p@gmail.com><br> <b><span style="font-weight: bold;">To:</span></b> James Rosenblum <jrosenblum@prodigy.net> <br><b><span
 style="font-weight: bold;">Cc:</span></b> erlang-questions <erlang-questions@erlang.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Saturday, October 27, 2012 3:53 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="yiv1783588798">Hello James<div><br></div><div>Since no one reacted yet, I've skimmed through the code very quickly and it looks really good - I wouldn't assume it being written by Erlang novice. The only thing I've spotted, which is rarely done in production grade Erlang systems is use of non-OTP servers by doing manual looping in spawned process (although I can see it does handle all sys messages and stuff). Is there any particular reason to not use gen_server in that case?</div>
<div><br></div><div>Cheers,</div><div>Gleb Peregud<span></span><br><br>On Thursday, October 25, 2012, James Rosenblum  wrote:<br><blockquote class="yiv1783588798gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div style="font-size: 14pt; font-family: arial, helvetica, sans-serif; "><div style="font-family: arial, helvetica, sans-serif; font-size: 14pt; "><span style="font-size:12pt;">Kind and Wise List;</span><br>
</div><div style="font-family: arial, helvetica, sans-serif; "><div style=""><div><div><div><font size="3"><span></span></font><br><span style="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>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-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-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-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-size:12pt;">It can be found at </span><span style="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-size:12pt;"><font face=".HelveticaNeueUI"><span style="font-size:15px;line-height:19px;white-space:nowrap;"><br></span></font></div><div style="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-size:12pt;">
<font face=".HelveticaNeueUI"><span style="font-size:15px;line-height:19px;white-space:nowrap;"><br></span></font></div><div style="font-size:12pt;"><font face=".HelveticaNeueUI"><span style="font-size:15px;line-height:19px;white-space:nowrap;">Thanks in advance,<br>
</span></font><span></span><br><span>Jr0</span></div></div></div><br><br> </div> </div>  </div></div></blockquote></div>
</div><br><br> </div> </div>  </div></body></html>