The server needs to know where playback is, for resume and for anything else
watching. Reporting too rarely loses a person's place. Reporting too often turns
one household watching four things into a server under constant write load, and
on a metered connection it costs a person money.
The cadence is one decision, made here, with its numbers and their reasons.
What this produces
The reporting interval, stated as a number with the reason for its value.
The events that report immediately regardless of the interval: playback started,
paused, resumed, seeked, stopped.
Coalescing, so that a person scrubbing through a film sends one report rather
than forty.
Every report going through the offline queue from #47 rather than being sent
directly, so that the offline case needs no separate path and cannot be forgotten.
Done when
The cadence and its reason are recorded. A test proves a scrub produces one
report. A test proves each immediate event reports without waiting for the
interval. Every report is observed passing through the queue. Blocked on #47,
#56, and #102 for the clock the cadence is measured against.
The server needs to know where playback is, for resume and for anything else
watching. Reporting too rarely loses a person's place. Reporting too often turns
one household watching four things into a server under constant write load, and
on a metered connection it costs a person money.
The cadence is one decision, made here, with its numbers and their reasons.
What this produces
The reporting interval, stated as a number with the reason for its value.
The events that report immediately regardless of the interval: playback started,
paused, resumed, seeked, stopped.
Coalescing, so that a person scrubbing through a film sends one report rather
than forty.
Every report going through the offline queue from #47 rather than being sent
directly, so that the offline case needs no separate path and cannot be forgotten.
Done when
The cadence and its reason are recorded. A test proves a scrub produces one
report. A test proves each immediate event reports without waiting for the
interval. Every report is observed passing through the queue. Blocked on #47,
#56, and #102 for the clock the cadence is measured against.