The Genvid Services

Genvid Service Cluster

Fig. 9 The Genvid Services

Fig. 9 presents 4 different types of data transitioning across the cluster, 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 Generalized 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 for 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.

The Channel Services also provide a public interface where you can view some Control Service events.

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.