go is great at a lot of things but if you want a multi clustered websocket solution, elixir is the absolute best in this category.
go has go threads. elixir has the actors, futures, message passing, immutable data structures and the OTP platform. OTP is killer and gives you genservers with pubsub and the ability to have thousands of tiny stateful processors PER machine.
Its all battle tested too.
comparing go to elixir in this particular case is like comparing a piper cub to a jet liner
source: 5 years of experience building an elixir startup with realtime sync between devices over websockets as a killer feature.
> the ability to have thousands of tiny stateful processors PER machine
Go has this too. It also has message passing (via channels). That's not to deny that Elixir/Erlang have a more developed story for IPC, process supervision and clustering.
go has go threads. elixir has the actors, futures, message passing, immutable data structures and the OTP platform. OTP is killer and gives you genservers with pubsub and the ability to have thousands of tiny stateful processors PER machine.
Its all battle tested too.
comparing go to elixir in this particular case is like comparing a piper cub to a jet liner
source: 5 years of experience building an elixir startup with realtime sync between devices over websockets as a killer feature.