Elixir uses technology with more than 30 years in the telephony market. Developed by Ericsson. It has advantages of being able to scale in any direction “out of the box” (vertical, horizontal). It recovers crashed processes “on the fly” (supervisors) without having to restart the program completely. It supports GraphQL (third party). Has native Analyzers - Where you can see problem processes consuming resources and so on. The processes talk to each other. Uses all cores of a CPU. And several advantages (like syntax, PubSub).
I was seeing another day comparisons of applications created in Go-Lang with others made in Elixir. I found the performance behind the benchmarks interesting. 2 millions conections at tha same time. With 450ms latency. (correct me if I’m wrong)
Would it be interesting to consider adopting Elixir instead of Go lang as core base (Client) for the Dgraph? Elixir is very simple to adopt and maybe the amount of helpers for the Dgraph project would grow.
Elixir sounds amazing and a fun language to work in.
We want to avoid code fragmentation within our code base. So, we stick to Go as much as we can. That way, any developer can pick up any portion of the code, understand it, work on it, or refactor it. Therefore, Go client would remain the main client around which our tooling is built.
Having said that, we’ll definitely expand our support for other clients.
I’m already a fanboy of your product (I want a shirt! LOLLL). What I wrote is more in the sense “Would it be better? Will these native erlang / elixir features leverage the Dgraph’s production process?”
For example, there are some issues in Github about crash that happens after a simple query or something trivial. The way I’ve seen users of elixir handle bugs and crashes is incredible. They have a “let it fail” philosophy. It is a model that does not bind to bugs, recovers and leaves traces for you to repair the bugs. This is incredible to me. It’s like a service of introspection of the code itself on the fly. That does not knock you down, keeps the service running even after a crash.
Anyway, I understand that it would take a heavy job to switch to a new language. So it’s a silly consideration.
Elixir is not really good at number crunching and he Dgraph library relies a lot on that (I suppose, I haven’t check the source code yet), so if thats the case Go is better suitted for this kind of things ^^