The Genvid Services
Figure 4: The Genvid Services presents 4 different types of data transitioning both across the cluster, as well as between the game, the cluster, and the client. Each type of data is associated with a set of services run by the workers.
The Streaming Services
The Streaming Services handle both the audio/video streams and the game-data streams. After receiving game data, these services encode it in the proper streaming format. Then they pass audio/video streams directly to the livestreaming platform and publish game-data streams at the stream endpoint via the messaging bus.
See Genvid Streams for more about stream composition.
The Channel Services
The Channel Services handle bi-directional communication between the game and the spectators. Because the connections are asymmetric, the channel services carefully choose and parameterize the type of exchanges used to provide a good streaming experience even under high load.
The Channel Services can publish events to spectator clients or they can send a periodic summary of the events submitted by viewers or another part of the system to the game.
See Scalable Event Channels for more about the events channels.
The Control Service
The Control Service is the point of entry of the game for the other services. Through it, the game registers new streams and makes requests for new channel endpoints. This service also controls access to the administrative interface, where you can monitor and manage the cluster.
You can see some Control Service events on the Channel Services interface.
The Login Service
The Login Service allows the client to query the cluster about the current streams playing and to request new entry points for the Streaming Service.