Hey folks, 

TLDR; 
I am submitting a PR to rename the "masterslave" network connector transport to 
"leaderfollower" and I propose that we use leader/follower going forward to 
replace all references to master/slave.

The Long Version: 
A tweet from a few days ago [1] raised the issue of non-inclusive terminology 
in the AWS docs [2] and suggested that we should replace masterslave with a 
more inclusive name for the network connector transport. The AWS docs refer to 
a feature of ActiveMQ that is a convenience discovery agent: 
https://activemq.apache.org/networks-of-brokers#masterslave-discovery. We are 
planning to change the docs to remove the recommendation to use the masterslave 
transport. 

Replacing master/slave nomenclature in ActiveMQ was raised in July 2020 [3]. 
There was some initial work to rename the git branch from master to main and 
there have been some attempts at making some changes to the code 
(https://github.com/apache/activemq/pull/679, 
https://github.com/apache/activemq/pull/714, 
https://github.com/apache/activemq/pull/788) however we have not been able to 
come to an agreement on nomenclature so these efforts seem to have stalled out.

If we are able to come to an agreement on nomenclature, we can move forward 
with removing more non-inclusive terminology on the website (I will follow up 
with some PRs to the website), in discussions with the community and of course 
in the codebase. This will remove barriers to adoption and make ActiveMQ a more 
approachable and inclusive project for everyone! Other Apache projects such as 
Solr and Kafka have moved from master/slave to leader/follower. Leader/follower 
is also recommended by the IETF [4] and inclusivenaming.org [5] which is 
supported by companies such as Cisco, Intel, and RedHat. At AWS, we have used 
active/standby to describe HA deployments, however from previous discussions 
it's clear that active/standby is not a viable option for this community since 
'active' can be used to describe so many things. If we can agree on 
leader/follower or some alternate we would follow the community's preference 
and adopt leader/follower to better serve our ActiveMQ users. 

If we can't come to an agreement on Leader/Follower or some other nomenclature 
I will, at the very least, create a follow up PR to remove the masterslave 
transport since it is just a convenience method to use static+failover with 
?randomize=false&maxReconnectAttempts=0.

[1] https://twitter.com/owenblacker/status/1517156221207212032
[2] 
https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-creating-configuring-network-of-brokers.html#creating-configuring-network-of-brokers-configure-network-connectors
 
[3] https://issues.apache.org/jira/browse/AMQ-7514 
[4] https://tools.ietf.org/id/draft-knodel-terminology-02.html 
[5] https://inclusivenaming.org/word-lists/tier-1/ 

Thanks,

Lucas Tétreault
Software Development Manager, Amazon MQ
email: tetlu...@amazon.com 

Reply via email to