<br clear="all"><div class="">
        <p>I have a setup in which two nodes are going to be 
communicating a lot. On Node A, there are going to be thousands of 
processes, which are meant to access services on Node B. There is going 
to be a massive load of requests and responses across the two nodes. The
 two Nodes, will be running on two different servers, each on its own 
hardware server.<br><br></p>

<p>I have 3 Options: HTTP/1.1 , rpc:call/4 and Directly sending a 
message to a registered gen_server on Node B. Let me explain each 
option.<br><br>
<b>HTTP/1.1</b><br><br> Suppose that on Node A, i have an HTTP Client like <code>Ibrowse</code>, and on Node B, i have a web server like <code>Yaws-1.95</code>,
 the web server being able to handle unlimited connections, the 
operating system settings tweaked to allow yaws to handle all 
connections. And then make my processes on Node A to communicate using 
HTTP. In this case each method call, would mean a single HTTP request 
and a reply. I believe there is an overhead here, but we are evaluating 
options here. The erlang Built in mechanism called <code>webtool</code>, may be built for this kind of purpose.
<br><br> <b>rpc:call/4</b><br><br> I could simply make direct rpc calls 
from Node A to Node B. I am not very sure how the underlying rpc 
mechanism works , but i think that when two erlang nodes connect via <code>net_adm:ping/1</code>,
 the created connection is not closed but all rpc calls use this pipe to
 transmit requests and pass responses. Please correct me on this one.<br><br><b>Sending a Message from Node A to Node B </b><br><br>
 I could make my processes on Node A to just send message to a 
registered process, or a group of processes on Node B. This too seems a 
clean option.
<br><br>
<b>Q1.</b> Which of the above options would you recommend and why, for 
an application in which two erlang nodes are going to have enormous 
communications between them all the time. Imagine a messaging system, in
 which two erlang nodes are the routers :) ?<br><br> <b>Q2.</b> Which of
 the above methods is cleaner, less problematic and is more fault 
tolerant (i mean here that, the method should NOT have single point of 
failure, that could lead to all processes on Node A blind) ? <br><br><b>Q3.</b> The mechanism of your choice: how would you make it even more fault tolerant, or redundant? <br><br> <b>Assumptions: </b>
 The Nodes are always alive and will never go down, the network 
connection between the nodes will always be available and non-congested 
(dedicated to the two nodes only) , the operating system have allocated 
maximum resources to these two nodes.<br><br> Thank you for your evaluations</p>

    </div><br><br><br><br>