- Breaking:
Group.disconnect/3now discards the complete local view of each departed cluster — remote entries included, and monitors receive:unregistered/:leftevents for them — instead of removing only locally owned rows. Reconnecting resyncs through the normal snapshot exchange.connect/disconnectalso raiseArgumentErrorfor non-binary cluster names instead of silently tolerating them. - The built-in registry conflict resolver now consistently includes the winner's metadata in
the losing process's
{:group_registry_conflict, key, winner_meta}exit reason. Customresolve_registry_conflictcallbacks remain responsible for any process exits they require. - Breaking:
Group.dispatch/4remote sends and process-DOWN replication are now non-suspending and never auto-connect — on a busy or disconnected distribution link the message is dropped, the link is force-disconnected, and bounded reconnect retries begin (the same policy replication lanes have used since 0.1.8). Previously dispatch could block the caller and initiate new connections. - Configured function-form
extract_metacallbacks are now applied on reads and lifecycle events (previously they were silently ignored and full metadata was exposed), and invalid:extract_metavalues raiseArgumentErrorat startup. Group.lookup/3no longer convertsArgumentErrorraised by metadata extraction callbacks into anilmiss; extractor errors now propagate to the caller.- Invalid
:shardsvalues (zero, negative, non-integer) raiseArgumentErrorat startup instead of failing later during key routing.
- Add bounded
Group.members/3queries withlimit:and local-owner process-group queries throughGroup.local_members/3
- remove deprecate message handling
- Use
send_nosuspendfor remote shard sends and add bounded reconnect retries after busy-link disconnects to avoid any single bad link from blocking a shard
- Fix local shard request reply leaks by using reply aliases and draining any already-delivered timeout replies
- Add bounded local PG turn-taking and bulk local PG ETS application
- Add sender-side replicated registry / PG batching by target node
- Add receiver-side batching and fairness for replicated registry traffic
- Add named-cluster
Group.connect(..., ttl: ms)leases
- Add configurable timeouts to the public register/unregister/join/leave/connect/disconnect APIs
- Add
Group.local_entries/1for local tagged registry and process-group entries - Buffer replicated PG join/leave receives with configurable receiver-side flush settings and bulk ETS application
- Optimize pg ops
- Optimize DOWN handling
- Initial release!