[erlang-questions] SOA with Erlang

Robert Melton rmelton@REDACTED
Thu Jan 13 02:56:05 CET 2011


On 12 January 2011 21:55, Kaiduan Xie <kaiduanx@REDACTED> wrote:
> Can someone share the experience on using SOA (Service Oriented
> Architecture) with Erlang? Are there successful cases in industry?

I am in the process (just started) of doing this now on my first
production product in Erlang, and it is, interesting and frustrating
at the same time.  In the past, I have built SOA platforms (this will
be my fourth), focused on having a single communication point, the
HTTP layer for everything.  This had some nice advantages,
load-balanced back and front end with off the shelf components, great
scalability, great caching, great concurrency (thread the tip and
allow any concurrent processes to be load balanced and run
concurrently), and generally I didn't feel like I was giving up too
much in the exchange.  I had to deal with home grow the error handling
to make complex requests fail gracefully, and deal with communication
parsing and network latency, but generally the decision was fairly
easy as the benefits greatly outweighed the cons.

Erlang is a far different animal in this regard, so much of what I
spent a lot of time building in the past is built in, and trivial in
Erlang.  Message passing between components in HTTP/(JSON or XML)
seems insanely heavy, home grown error handling feels obnoxious and
outdated, and pushing all the communication to the http layer feels
like a net negative.  However, pushing a lot out to HTTP, you do still
get some benefits in regards to load balancing, high levels of scaling
(hundreds of servers can be used to fulfill a single request).

More than answering your questions, I am thinking aloud about my own
issues, sorry for that.  I am hunting for that balance point, should I
continue to push everything up to HTTP using a tool like WebMachine,
and then Erlang just becomes a far better local webserver.  If I
instead decide to use all of Erlang's wonderful features, where do I
draw the line between Erlang internal clustering and process
communication tools, and the web layer... and what do I do once I pass
Erlang's ability to cluster (this may be a non-issue, but I have read
repeatedly that you can't get into the hundreds of Erlang nodes
without issues).

/thread_hijack



On Wed, Jan 12, 2011 at 6:05 PM, Gordon Guthrie <gordon@REDACTED> wrote:
> Here's a link to the Hypernumbers White Paper I wrote a while back:
> http://www.scribd.com/doc/32838204/Hypernumbers-Whitepaper-Using-Erlang-In-Web-Startups

Thanks Gordon, for taking the time to write that all up!

-- 
Robert Melton | Contact Information @ http://robertmelton.com/contact


More information about the erlang-questions mailing list