[erlang-questions] Did I do it right?

James Rosenblum <>
Mon Oct 29 00:24:03 CET 2012


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 ;)

I might have made some bad assumptions about Riak and Couchbase, but I thought they were more power than I needed while simultaneously not serving my use-case. 

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 

It didn't seem that either Riak nor Couhbase were a great fit for this. Again, I might have made some poor assumptions...

 From: Chris Hicks <>
To: ;  
Sent: Saturday, October 27, 2012 5:10 AM
Subject: RE: [erlang-questions] Did I do it right?

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 :)


Date: Thu, 25 Oct 2012 14:08:14 -0700
Subject: [erlang-questions] Did I do it right?

Kind and Wise List;

 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. 

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 ;)

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. There are 200 - 400 clients producing about 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.

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. 

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?

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. 

It can be found at https://github.com/jr0senblum/JCache

If this is an inappropriate request, I apologize and please feel free to ignore this all together.

Thanks in advance,


erlang-questions mailing list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121028/86b19d2a/attachment.html>

More information about the erlang-questions mailing list