NOTE: This is currently a proof of concept and is not ready for usage
Tactix
A Simple Actor Model Implementation inspired by Actix
Actix provides a great API for working with actors but it is missing some key features of the Actor Model that really need to be there such as heirarchical supervision. Also Actix was created as a solution to asynchrony before tokio was available and as a result implemented it's own runtime. Overtime it switched to tokio as a default async runtime however much of the baggage from the original runtime remains in the code which has led to complexity. Tactix attempts to follow the Actix API whilst fixing some issues inherent within it utilizing as much of tokio as it can.
Alice Ryhl a maintainer of tokio wrote a great article on creating an actor model in tokio where it is outlined how to create an actor model system using tokio channels. This however leads to relatively verbose code as events must be discriminated.
Tactix attempts to apply some techniques from Alice Ryhl's article and combine them with Actix's handler syntax whilst enabling safe async handlers in order to get the best of both worlds.
This is not a drop-in replacement for Actix but should be a relatively light lift and should improve developer erganomics for async handlers.
Usage
;
;
;
async
- Async Handlers
- Recipient
- started()
- Ensure handlers run in a non-blocking mutually exclusive way
- Heirarchical Actor Supervision