// the find
nactio/nact
nact ⇒ node.js + actors ⇒ your services have never been so µ
Nact brings the Erlang/Akka actor model to Node.js with supervision trees, event sourcing, and stateful actors. It's for backend developers who want structured concurrency and fault isolation without leaving JavaScript. Think of it as a lightweight alternative to spinning up a JVM just to get actor semantics.
Supervision trees are first-class — actors can restart, stop, or escalate failures to their parent, which is the correct way to handle crash recovery and not just a bolted-on feature. The persistence module decouples event sourcing from the storage backend via a clean engine interface, so you can swap in Redis, Postgres, or anything else. Deliberately minimal runtime dependencies — vendoring denque and macrotask rather than pulling npm transitive garbage is a deliberate and correct choice. The TypeScript port on the next branch shows actual type discipline, with interfaces separated from implementations.
Last commit was March 2023 and the README openly describes a 'significant rearchitecture' that appears unfinished — the 'next' branch rewrite and documentation rewrite are still pending, leaving the current API in an uncertain state. No built-in distributed messaging: despite the Akka comparison and k8s aspirations, actors are process-local only, which undercuts the value proposition for anything genuinely distributed. The streams module has no README and sparse test coverage compared to core. 1144 stars and 44 forks over several years suggests it never gained meaningful adoption, which means community support, plugins, and production war stories are essentially nonexistent.