A model of asymmetric communication or control where one device or process has total control over one or more other components.
Master/slave terminology is problematic because it serves as a reminder that slavery was and continues to be a globally institutionalised practice. Yet, this type of offensive language is still used casually in many programming languages.
The outdated "master/slave" convention has strong associations with slavery which is exclusionary to members of our community who may continue to live with the negative impacts of slavery. It also demonstrates how pervasive and casual racism is throughout our culture and language.
Seek to change any existing "master/slave" terminology to one of the suggested terms, as there are many alternative terminologies to describe the relationship between two components, many of which are much more specific. Avoid creating new projects with this terminology.
Even if you may not be negatively impacted by this terminology, it can negatively impact other existing and prospective contributors onto your project. The terminology isn't so unique that it's irreplaceable; the lift tends to be trivial in comparison to the potential impact.
- Agency & Operatives
- Leader & Follower
- Main & Secondary
- Parent & Child, Helpers, or Workers
- Primary & Replica
- Primary & Secondary
- Trunk & Branch
Something not quite right?
If you found a typo, would like to add another resource, or add nuance to this definition, please feel free to submit an issue or open a pull request.