[erlang-questions] Is Erlang ideal for a global exchange?

Mihai Balea mihai@REDACTED
Sat Jan 10 16:14:56 CET 2015


> On Jan 5, 2015, at 11:28 AM, xu xiut <xiut.xu@REDACTED> wrote:
> 
> I am looking at using Erlang for an exchange. If I'm lucky, my transaction volume will be 100 - 150k day or about 4000 transactions/hour, about 1.5/sec At this rate, maybe Erlang wouldn't be necessary, however, would it be the case that Erlang provides better semantics surrounding failure compared to other languages and their ecosystems, and so, even then it would be a great tool choice?
> 
> Is Erlang ideal for scaling out such an exchange? I wonder what is the minimum number of trades a second that would be difficult for erlang to process. I realize it's difficult to answer given the trade execution path isn't described, but it's the first question that comes to mind when I started thinking about the language of choice.
> 
> Any thoughts or suggestions are welcomed, and thank you for letting me share this here!

You don’t provide enough information to determine, with a reasonable degree of confidence, if Erlang would be a good fit for your project. Throughput is only one parameter of an exchange, but equally important are latency and burst rate. The failure/recovery semantics of Erlang, while great for many situations, might not be appropriate for an exchange - again, depending on the particulars of your use case. It might turn out that crashing and restarting is not appropriate for you. To put it in perspective, if you lose a message in a chat application it is bad, but not disastrous. If you lose a trade in an exchange, people lose money, and they tend to be _very_ unhappy about that.

One thing though, in the hands of an experienced person, Erlang can be used as fast prototyping tool. It’s not a bad place to start for this kind of projects. You can whip up a proof of concept reasonably quickly and then you will know better if this is a good fit.

Is this your first foray into Erlang and exchange development? If yes, you will be fighting two new and peculiar domains at the same time, in which case I’d suggest you start with something more familiar to you. If you do have experience with either Erlang or exchange development then maybe give it a shot :)

I know my answer is not very specific, but i hope it helps :)

Mihai




More information about the erlang-questions mailing list