slawlor / ractor

Rust actor framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Distributed Nodes

slawlor opened this issue · comments

Following from Erlang, we want to support distributed nodes
https://www.erlang.org/doc/reference_manual/distributed.html

We need

  • Tcp connections and transmission
  • Encrypted socket communications #55
  • Distribution handshake
  • Dist specification
  • Serializable messages which can go over the network boundary in a distributed environment
  • Each "node" needs to know of all nodes it's dist connected to (this includes updating the local PG groups and named registry with remote nodes)
  • Each "remote" node should be a local actor that talks to the remote channel, allowing for local message processing without knowing anything about the actor being remote
  • Registration of remote actors on a local system (control.proto)
  • Lifecycle events of actors (when an actor dies, it should notify it's local NodeSession who propagates it to the remote system to cleanup the RemoteActor instance)
  • In Erlang, nodes connect to other nodes a given node is connected to (as an optional functionality), so like A connects to B who's also connected to C, then A also initiates a connection to C. This should be relatively simple to implement as an optional functionality. #53
  • A lot of documentation
  • Added e2e framework with initial test on auth handshake + pg group synchronization

Already present:

Related: #39 #36