It was just duscussed in russian mailing list: send control messages over native erlang and payload via socket<span></span><br><br>On Tuesday, October 23, 2012, Roberto Ostinelli  wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear list,<div><br></div><div>I'm building a 2-tier architecture where:</div><div><ul><li>the 1st tier is dedicated to keeping open socket connections to the outside clients, and then sends anything it receives from TCP to the 2nd tier</li>

<li>the 2nd tier receives all TCP data from the 1st tier and does the real job</li></ul><div>The reason why I'm doing this is because in case of crashes in the main application (2nd tier), then the outside connections will still be alive, hence avoiding the horrible peak of clients trying to reconnect all at once.</div>

</div><div><br></div><div><div>My main issue is that, afaik, sending big messages between nodes is actually a performance killer. If we set up this 2-tier architecture, then every stanza that gets received from the 1st tier will have to be resent internally to another node.</div>

<div><br></div><div>So, while the 1st tier gets this from individual sockets, the message passing between nodes gets done on a single TCP connection between nodes. I'm just afraid this is actually bad design and can lead to problems.</div>

<div><br></div></div><div>Therefore: are there alternatives to this? A custom Erlang transport? A pool of sockets?</div>
</blockquote>