<div dir="ltr"><div>Re. 3, you should definitely look into using existing solutions for HTTP/HTTPS load-balancing. This will work every bit as well with Erlang/inets as with any other technology.</div><div><br></div><div>Re. 4, yes, and you're not limited to inets. Take a look e.g. at Cowboy [1]</div><div><br></div><div>Re. 5, well, your description is vague enough that it's hard to answer, but you seem to be aiming for some form of SOA architecture. If you want to proceed quickly with prototyping and MVPs, you could implement a component architecture inside a single Erlang node and make some minimal preparations for being able to later break them apart into a larger network of services. A single Erlang node running on a decent cloud instance is likely to handle a fairly large number of devices without breaking a sweat, unless your applications are expected to be very computationally heavy.</div><div><br></div><div>This way, you can defer the many messy issues of going full SOA from the beginning, and benefit from Erlang's outstanding "micro-SOA" capabilities.<br></div><div><br></div><div>[1] <a href="https://github.com/ninenines/cowboy">https://github.com/ninenines/cowboy</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Den mån 4 nov. 2019 kl 13:10 skrev Marthin Laubscher <<a href="mailto:marthin@lobeshare.co.za">marthin@lobeshare.co.za</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_955792352686745134WordSection1"><p class="MsoNormal"><span style="font-size:11pt">Hi everyone,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Please pardon my long absences from this awesome (mature) community and my limited knowledge which is likely outdated as well. I’ve known since 1996 when I was first told (in confidence by an Ericsson Radio Systems liaison) about Erlang that it would have to play a role when I eventually get to implementing the system I’ve been working on designing since 1991. That big day is drawing near, so now I’d like to reaffirm my high level understanding of what the language is suited for.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">I reckon the problem I’m looking to address is intrinsically concurrent and if I can design the solution just right I just might be able to avoid introducing sequential code and choke points to create an dynamic (learning, responsive to conditions) distributed server capable of using all or most of its resources for any mixture of trivial, simple, complex and massive service requests whether it’s coming from a few clients or billions of them. Essentially as illustrated in the diagram below:<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><img style="width: 7.5416in; height: 3.4583in;" id="gmail-m_955792352686745134Picture_x0020_1" src="cid:16e3c0ba2df5b16b21" width="724" height="332"></span><span style="font-size:11pt"><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">I’d like to ask your advice and check some assumptions if I may impose.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><ol style="margin-top:0cm" type="1" start="1"><li class="gmail-m_955792352686745134MsoListParagraph" style="margin-left:0cm"><span style="font-size:11pt">Is my conviction that Erlang (and OTP) is ideally if not best suited to addressing this type of problem objectively justified or likely based on loyalty and familiarity?<u></u><u></u></span></li><li class="gmail-m_955792352686745134MsoListParagraph" style="margin-left:0cm"><span style="font-size:11pt">Is my aspiration to scale the same code from one server to potentially hundreds of thousands of cores spread across the globe hopelessly romantic or somewhere within the realm of possibility?<u></u><u></u></span></li><li class="gmail-m_955792352686745134MsoListParagraph" style="margin-left:0cm"><span style="font-size:11pt">Assuming the network remains HTTP/HTTPS based, would Erlang’s inets module allow the code accepting new requests to interact with and control load balancing hardware to ensure each such request is served on the best available server, or will I need custom load balancers of my own for that?<u></u><u></u></span></li><li class="gmail-m_955792352686745134MsoListParagraph" style="margin-left:0cm"><span style="font-size:11pt">Still assuming HTTP/HTTPS will inets allow me to break up request processing across multiple processes and threads based on incremental scanning of the requests themselves?<u></u><u></u></span></li><li class="gmail-m_955792352686745134MsoListParagraph" style="margin-left:0cm"><span style="font-size:11pt">Are there lessons from previous (or current) successes and/or failures to achieve similar results to learn from available in the public domain like maybe from ejabberd or Yaws?  (I’m not attempting to reinvent any wheels or address a general purpose need like Yaws et al. Internet and web protocols may be involved but I have a singular focus on delivering user-specific perspectives of a single large dataset to a custom client app.)  <u></u><u></u></span></li></ol><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Given my two additional objectives of eventually:-<u></u><u></u></span></p><ol style="margin-top:0cm" type="a" start="1"><li class="gmail-m_955792352686745134MsoListParagraph" style="margin-left:0cm"><span style="font-size:11pt">ending up with a boringly simple system which elegantly encapsulates all these complex requirements, and<u></u><u></u></span></li><li class="gmail-m_955792352686745134MsoListParagraph" style="margin-left:0cm"><span style="font-size:11pt">open-sourcing the entire system once it’s beyond reach of those with nefarious intentions,<u></u><u></u></span></li></ol><p class="MsoNormal"><span style="font-size:11pt">would anybody like to get involved in helping design and implement this project or even take the lead on it?<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Thank you in advance for your kind consideration.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Warm regards,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Marthin Laubscher<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p></div></div>
</blockquote></div>