jdev - 2022-01-30


  1. Sam

    Does anyone else implement in-band bytestreams (or related transfer mechanisms that use it) with a buffer? When the buffer is full do you send back a resource-constraint error of type wait or similar? If so, does anything else understand that or does it just cancel the connection as soon as you do because it saw an error?

  2. Sam

    (using IQ stanzas, I mean, I guess with message stanzas you can't really do this in a reasonable way)

  3. Zash

    .... message receipts

  4. Sam

    I guess you could send message receipts if an error wasn't generated, but now you might as well just use IQs.

  5. Zash

    Maybe using IQs is better

  6. Zash

    Or suffer some TCP over TCP pains?

  7. Sam

    In general I think it is (and the spec says as much). I'm not sure if it actually provides a way to apply back pressure though or if other users would just interpret this error as "stream closed" instead of "try again in a bit", the spec doesn't really define a way to control the transmission rate

  8. jonas’

    you could delay your IQ response

  9. jonas’

    implementations adhering to: > The sender of a data chunk need not wait for these acknowledgements before sending further stanzas. However, it is RECOMMENDED that the sender does wait in order to minimize the potential for rate-limiting penalties or throttling. will then rate-limit themselves

  10. jonas’

    if they don't, you can throw a resource-constraint error in their face, they deserve it then

  11. Zash

    Do TCP window stuff?

  12. jonas’

    optimizing IBB seems a bit weird anyway

  13. Zash

    Hm, indeed. Servers probably won't like it if you try for maximum throughput.

  14. Sam

    Delayed response is a good idea. I'd be worried about timeouts though

  15. Sam

    I'm not going for maximum throughput so much as not allowing unlimited buffer growth