Exadra37

Exadra37

Would it be possible to have the Elixir/Erlang distribution working over websockets?

I have stumbled accidentally in this repo:

https://github.com/ityonemo/pony_express

So, this left me wondering if the approach taken by @ityonemo to securely extend a Phoenix PuBSub over SSL with websockets couldn’t be used for the Erlang distribution mechanism itself?

For what I understand the current Erlang distribution has a bottleneck in the number of nodes that can be connected together due to the accumulation of all the requests for the gossip protocol and application data through the network, and this without using TLS.

When using TLS it becomes even slower due to the additional back and forth needed for the handshakes.

So, once websockets only need to do the handshake when establishing the connection I was wondering if using them would not increase throughput and the number of nodes that could be connected together?

Note: I know that is possible to overcome current limitations with specialized approaches, like for example the one described in this talk by a network engineer at Whats App.

Most Liked

ityonemo

ityonemo

I think the general problem is that erlang is using the gossip protocol as a way of achieving consensus for a lot of things like the :global locks. Also Pids are an overlay addressing system, so achieving consistency on that might be challenging, and maybe also causal ordering, for something based on PubSub messaging. Does erlang distribution over TLS not use persistently open connections? I imagine it does, because I think erlang distribution over TCP does.

You may also be interested in the partisan project which I think does more directly address these issues: https://www.youtube.com/watch?v=KrwhOkiifQ8

and (self-promotion) if you like pony_express you might also like the erps package :wink:

Exadra37

Exadra37

I have no idea, because I am still a beginner in the Elixir/Erlang world, despite the time I am playing with it I never used it in production. We will need to wait for somebody else to confirm your assumption :wink:

I already saw that talk in the last year and is contagious the enthusiasm of the presenter. Anyway thanks for remembering me of it.

Nice to know about it, and I would place the intro from this page into the intro for the current landing page.

I was about to close the browser tab when I finally found an explanation for what the package was for :wink:

Where Next?

Popular in Discussions Top

jswny
I would like to better understand what the advantages/disadvantages of umbrella applications are compared to structuring your app as as s...
New
sashaafm
I’m trying to evaluate the best combo/stack for a BEAM Web app. Right now I’m exploring Yaws a bit, after having dealt with Phoenix for a...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 53690 245
New
axelson
Decided against including more info in the title, but the gist is that Plataformatec sponsored projects will continue with the assets bei...
New
ricklove
I was just introduced to Elixir and Phoenix. I was told about the 2 million websocket test that was done 2 years ago. From my research, t...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39297 209
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
pdgonzalez872
If this has been asked here before, please point me to where it was asked as I didn’t find it when I searched the forum. Maybe a mailing ...
New
griffinbyatt
Sobelow Sobelow is a security-focused static analysis tool for the Phoenix framework. For security researchers, it is a useful tool for g...
New

Other popular topics Top

malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 42920 311
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30877 112
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 53690 245
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 47930 226
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement