How can I distinguish between server-client and master-worker architectures?

  • is a pair of client and server a pair of a master and worker?

  • is a pair of a master and worker a pair of client and server?

  • must a worker be created by its own master? In comparison, a server is often not created by a client.

  • must a worker have only one master, but not more than one masters? In comparison, a server can serve multiple clients. Thanks.

  • Your "first principle" is effective communication. It matters less the precise definitions of these words than "are you communicating effectively with your coworkers." – Robert Harvey Mar 26 at 14:43
  • Do you mean I should increase noise-signal ratio, by adding more word salad, a lot of words without any content? – Tim Mar 26 at 14:45
  • 3
    No, I mean "define your terms." Our team pronounces it "see-quel," even though the "correct" pronunciation is probably "ess-cue-ell." But we still all understand each other. – Robert Harvey Mar 26 at 14:55
  • 1
    @Tim:: I guess what Robert is trying to tell you is, the terms in your question (like several other terms in software engineering) don't have a universally accepted, mathematically strict and unique meanining - there is some degree of freedom how they are used. For example, if you read a book where the author uses the terms, you need to make sure what this specific author means with them, in the context of the specific book. This is even more true when working with others, when trying to find a common language. – Doc Brown Mar 27 at 6:56
  • 1
    ... That does not mean such questions are off-topic here on this site. Asking some experts on how these terms could be used is not inherently wrong. But to give you a complete and correct answer how such terms could be used would probably require a very broad and extensive write-up, which has also a high potential of becoming opinionated. Part of the community here does not really like such questions. – Doc Brown Mar 27 at 7:03

Not necessarily. In many practical architectures there is a pool of workers who are withdrawing request records from thread-safe queues and perhaps putting their results onto another queue. Instead of "master" and "slave," I'd use words like "producer" and "consumer."

A work-request that comes in might (like an order in a fast food restaurant) be split among many different specialized workers, each one of which is focused on his own "to-do list" and working asynchronously. (The "burger meister," the "fry guy," the "master of the milk shakes" and so on.) They are workers, who might be specialists, but they are not slaves.

Eventually, all the parts come together in the proverbial paper-bag, and the clerk hands it to you with a smile. Bon appetit!

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.