Closed ianswett closed 1 month ago
Another 3rd option Cullen would be a control stream per SUBSCRIBE.
That way OBJECTS_DROPPED would only block SUBSCRIBE_END, which almost sounds like a feature?
Another 3rd option Cullen would be a control stream per SUBSCRIBE.
That way OBJECTS_DROPPED would only block SUBSCRIBE_END, which almost sounds like a feature?
I can easily imagine something like that but I think we need to deal with the following requirements one way or another:
If we have three subscribes for three tracks A, B, C and A is always more important than B , which is more important than C. You don't want the OBJ_DROP messages for B to have stop all the data on A track from flowing. (and I will hand wave the what is newer / older / priority etc but you can see how as we dig into that, we will still need to solve some version of this )
If a publisher is sending a ton of OBJ_DROP to a subscriber on a badly congested link, it must not result in a situation where the subscriber can not tell the publisher to end the subscription. Even when the bandwidth each direction is highly asymmetrical.
The audio stream use case is an interesting one.
I can imagine this instead being "Anything prior to this Object that you didn't receive, you probably won't"? That means it doesn't scale with the number of Objects.
I think I prefer #434 to this PR.
The current direction is to not include a specific signal for dropping, so closing this PR.
This is intended to be complementary to #429 by adding a SUBSCRIBE specific mechanism to indicate hop-by-hop Objects that will not be delivered. Because this is specific to a SUBSCRIBE, it's not intended to be cacheable.
Builds on ideas in #423
Each SUBSCRIBE could be moved to their own bidi stream and this could be sent there, but that change can be made separately.
Fixes #345