For over a month, I’ve been doing an async refactor of an Actor Model in Rust called Axiom. It’s approaching a point where it needs a minimal example that proves it to work in a practical project. The lead maintainer wanted to create a game server, and I suggested we work with Amethyst. The benefit is mutually drawing attention to our projects, as members of the Rust ecosystem.
What is the Actor Model, and what about Actix?
The Actor Model consists of many Actors that own their own state and communicate exclusively via messages. Each Actor can be thought of as a micro-service. A proper Actor Model implementation removes all concurrency concerns and enables taking advantage of all CPU cores.
The Actor Model is used widely in large-scale services, including Discord, and is the basis of Erlang and Elixir, as BEAM VM languages. Axiom, as a Rust Actor Model, would be potentially ideal to serve as a base for any future Amethyst hosted services.
Actix is more of a “pseudo” Actor Model. It cannot make all of the guarantees that you’d find in Akka, Erlang, or Elixir, and it was made, first and foremost, to drive Actix’s HTTP APIs (which is apparent from trying to read the docs on Actix for usage sans HTTP).
What kind of example?
It doesn’t need to be anything larger than what we have in our Showcase Family already. In fact, some of those games might already be perfect.
So… what’s to be discussed?
Mainly, the Showcase Team should weigh on whether they would like to collaborate with us, and after that, it’s a matter of picking/making the game, and then implementation specifics. For this thread, I’d like to get an idea of how everyone feels about this arrangement, before worrying too much about specifics.