The cursor + offset approach lends itself to retrieving more content than is immediately sometimes. Encourage plugin developers to return all content retrieved (even if it's above the target amount) in the stream. As part of the fetchContent response, include a int offsetEndsAt value indicating where the first piece of content to return to the client lies in the stream. Any content prior to it will be cached, but not sent to the client.
Requires going back to a custom return type for fetchContent with the flux existing alongside that helper value.
Importantly this assumes that Providers are always capable of returning the stream of content in chronological order, which may not always be the case? Research this more. If that's not a reasonable expectation, then this concept fails because there's no way to predict where the cutoff lands.
The cursor + offset approach lends itself to retrieving more content than is immediately sometimes. Encourage plugin developers to return all content retrieved (even if it's above the target amount) in the stream. As part of the
fetchContentresponse, include aint offsetEndsAtvalue indicating where the first piece of content to return to the client lies in the stream. Any content prior to it will be cached, but not sent to the client.Requires going back to a custom return type for
fetchContentwith the flux existing alongside that helper value.Importantly this assumes that Providers are always capable of returning the stream of content in chronological order, which may not always be the case? Research this more. If that's not a reasonable expectation, then this concept fails because there's no way to predict where the cutoff lands.