Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
We Distribute
  1. Home
  2. Technical Discussion
  3. Flow control

Flow control

Scheduled Pinned Locked Moved Technical Discussion
11 Posts 6 Posters 338 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • evan@activitypub.spaceE This user is from outside of this forum
    evan@activitypub.spaceE This user is from outside of this forum
    evan@activitypub.space
    wrote on last edited by evan@activitypub.space
    #2

    Obviously the other option is to keep sending until the receiving server fails, and then do exponential backoff until the remote server can process your activity again.

    But I'm looking for something more adaptive that adjusts the sending rate before the receiver fails.

    1 Reply Last reply
    0
    • fentiger@mastodon.socialF This user is from outside of this forum
      fentiger@mastodon.socialF This user is from outside of this forum
      fentiger@mastodon.social
      wrote on last edited by
      #3

      @evan https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/429 ?

      evan@activitypub.spaceE julian@activitypub.spaceJ 2 Replies Last reply
      1
      • fentiger@mastodon.socialF fentiger@mastodon.social

        @evan https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/429 ?

        evan@activitypub.spaceE This user is from outside of this forum
        evan@activitypub.spaceE This user is from outside of this forum
        evan@activitypub.space
        wrote on last edited by
        #4

        fentiger@mastodon.social yes, but by that point you've failed. What I want is to have more adaptive sending, so you don't get to the 429 code.

        1 Reply Last reply
        0
        • fentiger@mastodon.socialF This user is from outside of this forum
          fentiger@mastodon.socialF This user is from outside of this forum
          fentiger@mastodon.social
          wrote on last edited by
          #5

          @evan No, you haven't. You just need to back off and retry, just as you do for an ACK timeout in TCP.

          evan@activitypub.spaceE 1 Reply Last reply
          0
          • fentiger@mastodon.socialF fentiger@mastodon.social

            @evan https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/429 ?

            julian@activitypub.spaceJ This user is from outside of this forum
            julian@activitypub.spaceJ This user is from outside of this forum
            julian@activitypub.space
            wrote on last edited by
            #6

            fentiger@mastodon.social yes I was also thinking of the venerable 429.

            evan the thing is, both approaches rely on the receiving end to support it. I would make the argument that a 429 would have nominal support from some implementations, but then again I wouldn't actually bet money on it.

            Either way you're looking at an FEP to establish flow control signalling or 429 handling. I'd then make the argument that putting together guidance for 429 (+ exponential back off) is easier than specifying flow control logic.

            1 Reply Last reply
            0
            • jamesmarshall@sfba.socialJ This user is from outside of this forum
              jamesmarshall@sfba.socialJ This user is from outside of this forum
              jamesmarshall@sfba.social
              wrote on last edited by
              #7

              @evan does AP have a way to send control messages, just meant for the receiving server?

              1 Reply Last reply
              0
              • rimu@piefed.socialR This user is from outside of this forum
                rimu@piefed.socialR This user is from outside of this forum
                rimu@piefed.social
                wrote on last edited by
                #8

                Currently whenever a POST is sent to an inbox the response body is ignored. The http status code is checked for errors but that's it. Perhaps some more complex information about the state of the receiving ingress queue could be conveyed in the body.

                evan@activitypub.spaceE 1 Reply Last reply
                0
                • fentiger@mastodon.socialF fentiger@mastodon.social

                  @evan No, you haven't. You just need to back off and retry, just as you do for an ACK timeout in TCP.

                  evan@activitypub.spaceE This user is from outside of this forum
                  evan@activitypub.spaceE This user is from outside of this forum
                  evan@activitypub.space
                  wrote on last edited by
                  #9

                  fentiger@mastodon.social Flow control is the feature in TCP where the receiving host, in its ACK, can send back information about its remaining buffer space. The sending host can slow down its sending rate to prevent overflowing that buffer. If this works correctly, no error is ever sent.

                  1 Reply Last reply
                  0
                  • rimu@piefed.socialR rimu@piefed.social

                    Currently whenever a POST is sent to an inbox the response body is ignored. The http status code is checked for errors but that's it. Perhaps some more complex information about the state of the receiving ingress queue could be conveyed in the body.

                    evan@activitypub.spaceE This user is from outside of this forum
                    evan@activitypub.spaceE This user is from outside of this forum
                    evan@activitypub.space
                    wrote on last edited by
                    #10

                    rimu@piefed.social There's a FEP for returning RFC 9457 Problem Report data from the POST.

                    Link Preview Image
                    fep/fep/c180/fep-c180.md at main

                    fep - Fediverse Enhancement Proposals

                    favicon

                    Codeberg.org (codeberg.org)

                    1 Reply Last reply
                    0
                    • silvermoon82@wandering.shopS This user is from outside of this forum
                      silvermoon82@wandering.shopS This user is from outside of this forum
                      silvermoon82@wandering.shop
                      wrote on last edited by
                      #11

                      @evan
                      HTTP 420/CHILL OUT?

                      Actually I do see HTTP 429 TOO MANY REQUESTS, which seems exactly what we want. I don't know what support is like though, I've not seen explicit support for it in the few bits of AP Federation code I've taken apart.

                      1 Reply Last reply
                      1
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      Powered by NodeBB Contributors
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups