trace-context icon indicating copy to clipboard operation
trace-context copied to clipboard

Clarify Baggage Propagation Limits

Open dpauls opened this issue 3 years ago • 1 comments

The Limits Section in the Baggage Propagation document specifies the following:

  1. A platform MUST propagate all list-members up to at least 64 list-members including any list-members added by the platform.
  2. A platform MUST propagate all list-members including any list-members added by the platform if the resulting baggage-string would be 8192 bytes or less. If the resulting baggage-string would be greater than 8192 bytes, some list-members MAY be dropped until the resulting baggage-string is 8192 characters or less.

It isn't clear to me what is expected the following hypothetical scenario:

  • Baggage has 50 list-members
  • The baggage-string is 10KB

The first limit specification suggests the entire string must be propagated because it contains less than 64 list-members. OTOH, the second limit specification suggests some list-members MAY be dropped. However, doing so contradicts the first requirement, which is labelled as a MUST.

I don't see any size limit to a list-member the way it is defined, which implies that the suggested hypotetical scenario is possible.

Pracitcally speaking, it seems to me that if there is a limit on length is provided, the intent is to allow an implemenation to bound the resources it would need to process a baggage string, if necessary. So, this leads me to believe the intent is to allow the size limit to trump the number of list-members limit.

I'm looking for feedback to confirm my thinking on this. Thanks!

dpauls avatar Apr 29 '22 15:04 dpauls