A method to synchronize consumption of an ordered data stream among a plurality of consumers comprising: defining a group clock measuring a group time indicating when a data chunk in the ordered data stream should be consumed by the plurality of consumers (1, 2, 3); synchronizing the group clock with a plurality of local clocks associated with the plurality of consumers (1, 2, 3) requesting to consume the ordered data stream, said synchronizing comprising sending a plurality of group times to the plurality of consumers (1, 2, 3); sending the group time associated with the data chunk and the data chunk to the plurality of consumers (1, 2, 3); receiving from a consumer (1, 2, 3) in the plurality of consumers (1, 2, 3) an arrival time of the data chunk; based on the arrival time of the data chunk and the group time associated with the data chunk, determining whether the consumer (1, 2, 3) has received at least 10% of data chunks late; and upon determining that the consumer (1, 2, 3) has received at least 10% of data chunks late, ensuring that the plurality of consumers (1, 2, 3) synchronously consume the ordered data stream by: obtaining a setting specifying a minimum quality threshold in the form of a minimum bitrate associated with the data chunk sent to the consumer (1, 2, 3) in the plurality of consumers (1, 2, 3); determining a network throughput; and upon determining that the network throughput is less than the minimum bit rate, adjusting a latency of the ordered data stream by assigning later consumption timestamps to future outgoing data chunks. defining a group clock measuring a group time indicating when a data chunk in the ordered data stream should be consumed by the plurality of consumers (1, 2, 3); synchronizing the group clock with a plurality of local clocks associated with the plurality of consumers (1, 2, 3) requesting to consume the ordered data stream, said synchronizing comprising sending a plurality of group times to the plurality of consumers (1, 2, 3); sending the group time associated with the data chunk and the data chunk to the plurality of consumers (1, 2, 3); receiving from a consumer (1, 2, 3) in the plurality of consumers (1, 2, 3) an arrival time of the data chunk; based on the arrival time of the data chunk and the group time associated with the data chunk, determining whether the consumer (1, 2, 3) has received at least 10% of data chunks late; and upon determining that the consumer (1, 2, 3) has received at least 10% of data chunks late, ensuring that the plurality of consumers (1, 2, 3) synchronously consume the ordered data stream by: obtaining a setting specifying a minimum quality threshold in the form of a minimum bitrate associated with the data chunk sent to the consumer (1, 2, 3) in the plurality of consumers (1, 2, 3); determining a network throughput; and upon determining that the network throughput is less than the minimum bit rate, adjusting a latency of the ordered data stream by assigning later consumption timestamps to future outgoing data chunks. obtaining a setting specifying a minimum quality threshold in the form of a minimum bitrate associated with the data chunk sent to the consumer (1, 2, 3) in the plurality of consumers (1, 2, 3); determining a network throughput; and upon determining that the network throughput is less than the minimum bit rate, adjusting a latency of the ordered data stream by assigning later consumption timestamps to future outgoing data chunks.