[ANN] Syn v3

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


All,
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:
https://hexdocs.pm/syn

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.
r.

[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