Skip to content

Review the need for the channels property in node_spec() #239

@aramallo

Description

@aramallo

In V5 we have an updated node_spec

-type node_spec()           ::  #{
    name := node(),
    listen_addrs := [listen_addr()],
    channels := #{channel() => channel_opts()}
}.

parallelism is now a per channel property.

We need to review the need for channels in this structure.

All nodes in a partisan cluster should have the same channels configuration, so when using a discovery strategy e.g. DNS we get nodename and list_addrs and we append the local channels config to create the node_spec(). If a node is wrongly configured we will have two different node_spec() objects for the same nodename.

The proposal would be to remove channels from the spec and just get it from the config partisan_config:channels().

-type node_spec()           ::  #{
    name := node(),
    listen_addrs := [listen_addr()],
}.

This also makes the membership CRDT and the gossip payload smaller

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions