Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In the article it’s pretty clear that they do put the go code in a separate executable and it connects over the BEAMs existing node RPC.


Indeed, they did.

Now can you explain why a needless C wrapper around Go code, or the BEAM usage around it, in such a kludge contraption, are an improvement over plain OS IPC capabilities, or OS agnostic IPC like gRPC?


Author here. I know all about POSIX IPC (nearly 30 years UNIX admin here). It's not supported on the BEAM in a sensible way. Not to mention that if it were implemented, it would almost certainly violate the sensible failure domain management of the Erlang/BEAM ecosystem and OTP.

As for GRPC: we don't use it anywhere else. So we'd have needed all of the tooling on two stacks, calling patterns without native error handling that we'd have had to implement, and instead we have a thin wrapper that allows the Elixir app to call Go like native Elixir code. GRPC would have been worse in almost every way.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: