Client–queue–client
Client-Queue-Client software architecture, also known as Passive Queue architecture, consists of two or more clients (where all clients can have either the same software, or different software understanding some common protocol), and one (or more) server, which acts as passive queue.
While being a specific form of Client-Server, Client-Queue-Client is also an alternative to the classic Client-Server architecture.
An idea for Client-Queue-Client architecture was born, when first complex, heterogenous Client-Server systems was made. Rising problem was, how one client can act as a server for another client(s). One approach was Peer To Peer architecture with its nodes instead of clients and servers, and the other was Client-Queue-Client, which is many times simpler to implement.
Example use case: two instances of web crawlers on different machines need to query each other, if the currently indexed url is already known to the other side. Older approach was to handle incoming connections in these crawlers, so instance 1 could connect to instance 2 and query it directly, and the newer one is to set up some passive queue, for example relational database, with which both instances communicate, sending subsequent "select" and "insert" queries through common protocol.
This article probably needs correcting style (and probably even rewriting) due to author's bad english.