A caucus is an ad hoc process group that collaborates on a project. Caucuses consist of zero or more members that communicate using a globally-ordered group send. Messages sent within a caucus are broadcast to all caucus members, and each caucus member receives the messages in the same order as they are sent.
The Caucus framework defines the interface for one-to-many communication, but it does not define what you do with the interface. Clients build on top of the caucus interface, adding their own protocol inside the messages they send. The nature of the data defines the implementation. This means that you can use the Caucus framework for a broad set of uses; the commonality is that each use requires communication (sending, receiving, or both) to be shared among a group of clients that treats the group as an entity.
Some examples of programs that might use the caucus framework include:
- A group chat program, where each member sends messages to and receives messages from the group
- A ticker tape program, where one member sends out information that is received by all group members
If, instead of a one-to-many relationship, you want to communicate between tasks or threads using the client-server model, use Message Streams or RPC Services. Message Streams provides thread-to-thread communication using a request-reply interface between a caller and server. RPC Services expands on the basic Message Streams features to provide a remote object call interface. To learn more about Message Streams, read "Communications access" in
The Caucus framework, Message Streams, and RPC Services all use the Service Access framework to define services or locate references to existing services. To learn more about the Service access framework, read "Communications access" in OS Services.