# JuliaActors: a road to an Actors ecosystem

**URL:** https://discourse.julialang.org/t/juliaactors-a-road-to-an-actors-ecosystem/49898
**Category:** Specific Domains
**Tags:** concurrency, actors
**Created:** [November 10, 2020, 9:15am UTC](https://discourse.julialang.org/t/juliaactors-a-road-to-an-actors-ecosystem/49898 "2020-11-10T09:15:55Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![pbayer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pbayer/32/11675_2.png) [@pbayer](https://discourse.julialang.org/u/pbayer)
#### Post date: [November 17, 2020, 4:26pm UTC](https://discourse.julialang.org/t/juliaactors-a-road-to-an-actors-ecosystem/49898/6 "2020-11-17T16:26:18Z")

</div>

For sure it can yet be improved.

> [@tisztamo](#):
>
> Moving the interface to its own package would be very helpful …

But I don’t think this to be a very good idea for several reasons:

- The biggest part in the library will be the messaging protocol if we come to the API functions, supervision … This stuff must remain together.
- The core implementation of actor primitives (`newLink`, `spawn`, and the actor loop) is actually quite small and will not grow much.
- This is also needed internally if we want `Actors` to provide a registry for all libraries using it. A registry is part of a modern actor API. It must be kept at a central place. `Actors` will therefore contain a registry server.
- As far as I can see `Actors` will remain a small library: registry, error handling, grouping actors, monitors and the supervision tree are not very much code.
- Sockets, TCP, … protocols with foreign actors can all be implemented by ecosystem libraries.

> [@\[ANN\] YAActL 0.2, Yet Another Actor Library (built in Julia)](https://discourse.julialang.org/t/ann-yaactl-0-2-yet-another-actor-library-built-in-julia/48637/35):
>
> Stuff like Akka HTTP, Akka Streams, Erlang Term Storage/Mnesia, Phoenix PubSub are all tools that I really think would really complement Julia’s current strengths.

As @fborda mentioned infrastructure libraries will become more important than `Actors` itself. `Actors` will be a stepping stone for those.

But yes, even if the interface is already small, we should try to simplify it further. Thank you for keeping me thinking 😀.

BTW:

> [@tisztamo](#):
>
> The status of `Func` , `Call` , `Request` and `Response` is not clear at first sight

Those are all part of the messaging protocol. Explanation of the messaging protocol is still missing in the documentation. `Func` is needed to send and store functions and arguments.

---

_[View the full topic](https://discourse.julialang.org/t/juliaactors-a-road-to-an-actors-ecosystem/49898)._
