Hello Joe,<br><br>Here are the answers:<br>- how many users are simultaneously connected? <br>unknown, expected 20+million total users within 5 years. Thus most likely we're talking about a million or so simultaneous users (of course what is expected and what occurs are not usually the same, but that is beside the point).<br>
- how long is a session? <br>very short, a few seconds <br>
- what are the latency requirements?<br> soft, real-time,<br>
- how much data do you store per user? <br>very little, under 1mb, perhaps 1/2 or a 1/4th.<br>
- what are your requirements on scalability - fault-tolerance?<br> Required scalability, and fault-tolerance.<br>
- is it permissible to stop the system for upgrades? <br>not desirable, if possible to avoid, then no stops should be done.<br>
- what protocols are used between the clients and servers? <br>currently unknown.<br>
- do you want hot stand-by fail-over etc<br> Sure, if it's possible.<br>
- do you want load balancing, quality of service? <br>Sure<br>
- what is your cost/user budget (both fixed and dynamic costs)<br>Unknown<br>
- how long do you want to store user data and how reliably<br>Very reliably, and preferably encrypted, hence I was thinking Mnesia, with the little snippets of data stored after running through aes. <br>
- do you want to run on a VM in the cloud or on a physical machine or machines<br>It was suggested, but I voted against it, this buzz word "the cloud" might sound nice, but if you want true reliability, then one should run on his own servers, not to mention if you want to have total control of your data, you have to own the server. But I'm open to suggestions, do you think cloud is more reliable? <br>
- do you want to integrate with other systems (mysql, soapy things, ... etc)<br>Unknown at this point, but my guess is: no<br>
if so what ...<br>
<br>Regards,<br>-Gene<br><br><div class="gmail_quote">On Fri, May 22, 2009 at 7:17 AM, Joe Armstrong <span dir="ltr"><<a href="mailto:erlang@gmail.com">erlang@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
You have to tell us more about your problem in order to get sensible<br>
feedback. So far you have said<br>
<br>
"develop a server back-end software with a large user base" - that's<br>
not much to go on.<br>
<br>
Languages are good/bad fits to specific problems - I'd like to know<br>
<br>
- how many users are simultaneously connected?<br>
- how long is a session?<br>
- what are the latency requirements?<br>
- how much data do you store per user?<br>
- what are your requirements on scalability - fault-tolerance?<br>
- is it permissible to stop the system for upgrades?<br>
- what protocols are used between the clients and servers?<br>
- do you want hot stand-by fail-over etc<br>
- do you want load balancing, quality of service?<br>
- what is your cost/user budget (both fixed and dynamic costs)<br>
- how long do you want to store user data and how reliably<br>
- do you want to run on a VM in the cloud or on a physical machine or machines<br>
- do you want to integrate with other systems (mysql, soapy things, ... etc)<br>
if so what ...<br>
<br>
The more detailed you are the better recommendations you will get -<br>
note that these are all<br>
"non functional" requirements - IMNSHO most projects start with a good<br>
grasp of the functional<br>
requirements (ie what the system should do) but fail miserably when<br>
regarding non functional<br>
requirements.<br>
<br>
Cheers<br>
<font color="#888888"><br>
/Joe<br>
</font><div><div></div><div class="h5"><br>
<br>
<br>
<br>
<br>
On Fri, May 22, 2009 at 1:49 AM, G.S. <<a href="mailto:corticalcomputer@gmail.com">corticalcomputer@gmail.com</a>> wrote:<br>
> Hello fellow Erlangers,<br>
><br>
> I have to make a decision on whether to develop a server back-end software<br>
> with a large user base (millions) in Erlang rather than Java. My personal<br>
> choice is to develop the software in Erlang, but I'm wondering whether any<br>
> of you could come up with good reasons why Java should be used instead, thus<br>
> far my reasoning is as follows:<br>
><br>
> Erlang Pros as apposed to Java:<br>
> Erlang is highly scalable,<br>
> The code is much shorter and therefore easier to maintain,<br>
> The software would be with a lot less bugs, and be much more robust,<br>
> Erlang provides a high throughput.<br>
> Prototyping is faster, and in general serverside, Erlang has been much more<br>
> capable in my previous projects.<br>
> With Erlang I can use Mnesia, which in it self is much more robust, and<br>
> scalable rather than for example SQL...<br>
><br>
> Cons:<br>
> Less number of developers than Java (but I think the Erlangers are usually<br>
> much more skilled, and it would be easy to find coders by for example<br>
> posting an add on this mailing list).<br>
> Security (but Erlang is also very secure I think, there are high profile<br>
> websites that deal with banking/money written in Erlang, exp: Kreditor)<br>
><br>
> -End,<br>
> ps, anyone ever had more problems interacting with APIs using Erlang as<br>
> opposed to Java?<br>
><br>
> I appreciate any responses and contributions to the Cons/Pros list,<br>
> -Gene<br>
><br>
</div></div><div><div></div><div class="h5">> _______________________________________________<br>
> erlang-questions mailing list<br>
> <a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
> <a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br>
><br>
</div></div></blockquote></div><br>