kras99 - Fotolia

Master-slave terminology alternatives you can use right now

Software companies have found alternatives for master-slave terminology to describe their distributed systems. It's time for the rest of the IT world to do the same.

Fifteen years ago, while teaching a WebSphere Portal class attended by several black students, I became incredibly uncomfortable when the standard software term master and slave came up in our discussion about scalability and workload management.

It was clear to me then that a master-slave terminology alternative was needed. What surprises me is that some software companies still use it.

Fortunately, this change is an ongoing process, albeit a slow one. In version 2.0, Jenkins opted to substitute the term agent in for slave, although the old vernacular still shows up from time to time buried within the tool.

"We started on that change a few years ago," said Jenkins creator Kohsuke Kawaguchi. He noted that Jenkins prioritized the change once he became aware of the cultural baggage the term carried. "There was no reason not to do that, so we just renamed it."

Similarly, Drupal and Redis have found primary and replica to be a sensible alternative to master-slave terminology.

Of course, the challenge with adopting new terminology is to find a word that properly conveys the function it describes. Primary and replica are reasonable terms to describe distributed databases, but they aren't the right choice for all situations. Jenkins' use of the term agent is much better than the use of the word slave, but does it properly convey the performance of the function? Let's explore some master-slave terminology alternatives and how they can be properly integrated into your vocabulary.

master-slave terminology
Jenkins is continuing the ongoing task of removing the term slave from its development tools.

Slave terminology alternatives

There was no reason not do to that, so we just renamed it.
Kohsuke KawaguchiCreator, Jenkins

Some suggested alternatives to the term slave in software programs include:

  • operative
  • node
  • worker
  • replica
  • drone
  • handler
  • steward
  • emissary
  • doer
  • mason
  • coordinator
  • conscript

SaltStack has used the term minion as an alternative to slave, which tends to put a smile on people's faces. There is merit when you replace a negatively charged term with something that involves a bit of levity.

Master terminology alternatives

The term master isn't as culturally charged as slave, but if a completely clean slate is the goal, master terminology alternatives include:

  • agency
  • hive
  • primary
  • conductor
  • captain
  • schemer
  • guide

Master-slave terminology alternatives

When you combine some of these various suggestions together, some fully formed master-slave terminology alternatives might include:

  • agency and operatives
  • captain and conscripts
  • master and masons
  • hive and drones
  • schemer and patsies
  • primary and replicas
  • scripture and prophets

I like the term scripture and prophets, as scripture implies a set of instructions that are virtuous and trusted, while prophets describe the people who produce and perform important work. However, if we were to replace a term that brings up racial issues with one that conveys religious undertones, it likely wouldn't be the best approach.

Poe's law asserts that it can be difficult to distinguish extreme views from parody, and I fear that terms such as hive and drones or schemer and patsies might make people mistakenly think I took the mickey out of the issue, when that isn't my intention. But, when this attempt to find a master-slave alternative tends to devolve into eye roll-inducing options, it underlies how inherently difficult this process will be.

The bottom line is that the old terminology has to go. I don't really care all that much what master-slave terminology alternatives that organizations come up with. All I hope is that developers and architects make it a priority and a permanent change.

Dig Deeper on Software development best practices and processes

App Architecture
Software Quality
Cloud Computing