moq-wg / moq-transport

draft-ietf-moq-transport
Other
82 stars 20 forks source link

Need better terminology for endpoints that are not relays #438

Closed fluffy closed 3 months ago

fluffy commented 5 months ago

Need a term for upstream, downstream and the original publisher that is not a relay and the final subscriber that is not a relay.

afrind commented 5 months ago

We also have parked issue #157 referencing some terminology. This comment https://github.com/moq-wg/moq-transport/issues/157#issuecomment-1553718108 seems to indicate that "Producer" and "Consumer" were meant to be the original producer/final subscriber, and perhaps even said that at one point, but the current doc doesn't reflect that.

fluffy commented 5 months ago

Yah, my recollection was we failed to come to consensus on that one way or the other. I certainly don't care what we call it but time and time again in describing this we need a few different words.

Say C is video display subscribed to a relay called B subscribed to a video camera called A. ( So A sends video to B that sends it to C). We need words for:

  1. The publisher like thing that is uniquely are original source like A. ( and origin server is not a good word for this)

  2. The final subscriber thing that is C in this case.

  3. A thing that is received a subscribe but does not care if it came from a relay or not. So both A and B in this case gets subscribes and have a tone of behavior that is the same.

  4. a thing that is receiving object based on a subscribe and does not care if they are coming from a relay or not. So a word that covers both B and C in this case.

wilaw commented 5 months ago

The publisher like thing that is uniquely are original source like A. ( and origin server is not a good word for this)

I do actually like the term 'origin' for this :) Reasons:

  1. It is a singleton - there is only one 'origin', while there can be many publishers, consumers, clients and servers.
  2. It defines its uniqueness - that of being the original source - while not overloading that with its behaviors, such as publish, or produce, which are shared by other nodes.

The final subscriber thing that is C in this case.

This is hard. I tend to use 'end client' or 'end consumer'.

Need a term for upstream, downstream

These seem clear enough - 'upstream' = towards the origin, 'downstream' = towards the end client. Are you talking more about the node that is in that direction, or the direction itself?

fluffy commented 5 months ago

Yah I think of upstream as the direction the subscribes go and downstream the direction the objects flow so that seems pretty easy.

"end consumer" seems workable for C but I would think of A also being an "end client" as client can be producer or subscriber.

Just bike shedding but perhaps "source producer" for A and "end consumer" for C.

TimEvens commented 3 months ago

Any update on this?

Section 1.2 in draft 04 still only defines producer and consumer yet the draft refers to them as publisher and subscriber.

Interactions indicate that SUBSCRIBE is sent by the subscriber and SUBSCRIBE_OK is sent by the publisher, but the actual interaction is that the relay acts/proxies as a subscriber to publisher (client endpoint) and acts/proxies SUBSCRIBE_OK to subscriber.

The reason the relay is acting as proxy instead of just relaying messages is because it's not merely forwarding out what it received. Instead it's interacting and responding to a subscribe that may be way after the publication start time.

englishm commented 3 months ago

Some other previous discussion: https://github.com/moq-wg/moq-transport/issues/229

I had proposed there "Origin Publisher" and "End Subscriber" to describe the terminal points of an end to end delivery chain.