[ANN] Syn v3

Roberto Ostinelli ostinelli@REDACTED
Sun Oct 24 10:13:02 CEST 2021

Syn v3 has just been released. For those who don't know what it is, Syn
(short for synonym) is a scalable global Process Registry and Process Group
manager for Erlang and Elixir. Syn automatically manages dynamic clusters
(addition / removal of nodes), and is also able to recover from net splits.

v3 builds upon the past experience to improve scalability & handling, and
the main differences are:

   - Syn is now based on Scopes. A Scope is a way to create a namespaced,
   logical overlay network running on top of the Erlang distribution cluster.
   Nodes that belong to the same Scope will form a subcluster: they will
   synchronize data between themselves, and themselves only.
   - The callback mechanism has been redesigned to support local callbacks
   so that every node is notified of register / unregister / join / leave and
   update operations. This allows it to properly support node crashing & net
   splits. Since the existence of Scopes, it is also now possible to define a
   different callback logic per Scope.
   - All rpc have been removed, and the registry conflict resolution
   doesn't use a global lock anymore. This allows for better scalability and
   should allow support for mixed-version cluster support, since internal
   messages are now all versioned.
   - Tests are now based on a 3 nodes cluster and include concurrency tests
   as well.

Docs have been published with elixir's format and are available here:

You can get Syn from the usual suspects [1][2].

A quick thank you note for Fred Hebert, who has taken some of his time to
provide me with some helpful input on the design.

Feedback and questions are always welcome.

[1] https://hex.pm/packages/syn
[2] https://github.com/ostinelli/syn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20211024/0e7f63ed/attachment.htm>

More information about the erlang-questions mailing list