tellus is an actor framework for Rust built on Tokio: synchronous message handlers, death watch with an ordering guarantee, supervision and event sourcing. Since 0.4.0 its actors can form a cluster. An ActorRef is serializable, so tell, ask and watch work the same on an actor in another process or on another machine.

The cluster has no leader: members gossip their list, a phi accrual failure detector marks silent members unreachable, and a pluggable downing provider (KeepMajority by default) decides who is gone. On top of that come remote death watch, a receptionist and pub-sub, bootstrap through DNS or Kubernetes, mutual TLS bound to node addresses, and a graceful leave. It is meant for clusters of tens of nodes, not yet (optimizations are planned) for hundreds.

I wrote up what it does, with code and a recording of a five node cluster under permanent chaos: tellus 0.5: the same ActorRef, across machines: Heiko Seeberger

Feedback and questions are very welcome.

1 post - 1 participant

Read full topic