#distributed #actor #akka #erlang

aurum_actors

Typed, distributed actors with clustering, CRDTs, IoT features and flexible serialization

2 releases

0.0.1 Jul 8, 2021
0.0.0 Jul 7, 2021

#60 in #erlang

MIT license

165KB
4.5K SLoC

This crate is an implementation of the actor model. Code examples and explainations are in the API documentation. Version differences are in the changelog.

Features

  • Actors are typed: they may only receive one type as their messages.
  • Actor can have interfaces for subsets of its possible messages.
  • Actors are distributed: they can be sent messages from another machine.
  • Serialization is customizable and built-in.
  • Actor references are forgeable, they can be created from scratch.
  • This crate has excellent type safety and catches many potential bugs at compile time.
  • The capability of actor systems to form clusters is included.
  • Many kinds of CRDT can be shared among cluster members.
  • You can define your own CRDT, and share it in the cluster.
  • Aurum's feature set is well-suited to IoT applications.

How is Aurum different from other actor models?

  • Most actor model implementations are exclusively local.
  • Most distributed actor models are untyped, which decreases type-safety.
  • Most actor model implementations do not allow you to forge actor references.
  • Serialization in Aurum is more powerful and flexible.

Current state of the project

Aurum is brand new, and we welcome new users to experiment with it. We are pre-1.0 at the moment, and new versions may include significant breaking changes as we figure out the API.

Dependencies

~13–20MB
~406K SLoC