Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • 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

NodeBB

  1. Home
  2. General Discussion
  3. I wish #ActivityPub was a "pull" protocol instead of a "push" protocol.

I wish #ActivityPub was a "pull" protocol instead of a "push" protocol.

Scheduled Pinned Locked Moved General Discussion
activitypub
18 Posts 10 Posters 3 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.
  • soapdog@toot.cafeS soapdog@toot.cafe

    I wish #ActivityPub was a "pull" protocol instead of a "push" protocol. The way it works, whenever you take an action, it sends that action to all followers. I would prefer if it simply stored them and then let each follower pull them when they see fit.

    That would introduce latency and more async comms as your messages wouldn't pop up into someone elses feed until their software fetch the data, but I think it would make it easier to self host.

    david_megginson@mstdn.caD This user is from outside of this forum
    david_megginson@mstdn.caD This user is from outside of this forum
    david_megginson@mstdn.ca
    wrote last edited by
    #5

    @soapdog Yes, lots of details to work out for our use cases, but the pull model is what makes RSS so crazy powerful and scalable. Push models are resource hogs that approach exponential growth in a large network like the fediverse — the medium-sized site that hosts my account is constantly struggling to stay one step ahead of the fedi's surging resource demands.

    soapdog@toot.cafeS 1 Reply Last reply
    0
    • david_megginson@mstdn.caD david_megginson@mstdn.ca

      @soapdog Yes, lots of details to work out for our use cases, but the pull model is what makes RSS so crazy powerful and scalable. Push models are resource hogs that approach exponential growth in a large network like the fediverse — the medium-sized site that hosts my account is constantly struggling to stay one step ahead of the fedi's surging resource demands.

      soapdog@toot.cafeS This user is from outside of this forum
      soapdog@toot.cafeS This user is from outside of this forum
      soapdog@toot.cafe
      wrote last edited by
      #6

      @david_megginson that is the exact problem that I want to get rid of. It really sucks. For example, I'd like to host a single-user AP server here at my flat, but knowing that it will use so much bandwidth is enough for me to reconsider it.

      david_megginson@mstdn.caD 1 Reply Last reply
      0
      • soapdog@toot.cafeS soapdog@toot.cafe

        I wish #ActivityPub was a "pull" protocol instead of a "push" protocol. The way it works, whenever you take an action, it sends that action to all followers. I would prefer if it simply stored them and then let each follower pull them when they see fit.

        That would introduce latency and more async comms as your messages wouldn't pop up into someone elses feed until their software fetch the data, but I think it would make it easier to self host.

        khleedril@cyberplace.socialK This user is from outside of this forum
        khleedril@cyberplace.socialK This user is from outside of this forum
        khleedril@cyberplace.social
        wrote last edited by
        #7

        @soapdog Why would it make it easier to self-host? Dealing with pull requests is on the whole more difficult than a simple send-and-forget. Tracking who is in on a conversation is easy enough. On the other hand, tracking every conversation you've ever been in is way more difficult, and wasteful pulling from every single one of them. It wouldn't work.

        1 Reply Last reply
        0
        • soapdog@toot.cafeS soapdog@toot.cafe

          @david_megginson that is the exact problem that I want to get rid of. It really sucks. For example, I'd like to host a single-user AP server here at my flat, but knowing that it will use so much bandwidth is enough for me to reconsider it.

          david_megginson@mstdn.caD This user is from outside of this forum
          david_megginson@mstdn.caD This user is from outside of this forum
          david_megginson@mstdn.ca
          wrote last edited by
          #8

          @soapdog Part of the problem is that we set the expectation that the fedi would work just like a monolithic social media site. If we reduced that expectation just a little, the demands would go down a lot.

          Users already accept (or fail to notice) that Mastodon's search and hashtag features aren't really global across the fedi.

          soapdog@toot.cafeS 1 Reply Last reply
          0
          • soapdog@toot.cafeS soapdog@toot.cafe

            I wish #ActivityPub was a "pull" protocol instead of a "push" protocol. The way it works, whenever you take an action, it sends that action to all followers. I would prefer if it simply stored them and then let each follower pull them when they see fit.

            That would introduce latency and more async comms as your messages wouldn't pop up into someone elses feed until their software fetch the data, but I think it would make it easier to self host.

            julian@fietkau.socialJ This user is from outside of this forum
            julian@fietkau.socialJ This user is from outside of this forum
            julian@fietkau.social
            wrote last edited by
            #9

            @soapdog There's a poll-based version specced at https://fediverse.codeberg.page/fep/fep/b06c/, sadly with no notable implementations (wouldn't be interactable by Mastodon etc.), but it's an opportunity to break new ground as an implementer if you know anyone who'd like to experiment with it.

            #ActivityPub #FediDev

            soapdog@toot.cafeS 1 Reply Last reply
            1
            0
            • julian@fietkau.socialJ julian@fietkau.social

              @soapdog There's a poll-based version specced at https://fediverse.codeberg.page/fep/fep/b06c/, sadly with no notable implementations (wouldn't be interactable by Mastodon etc.), but it's an opportunity to break new ground as an implementer if you know anyone who'd like to experiment with it.

              #ActivityPub #FediDev

              soapdog@toot.cafeS This user is from outside of this forum
              soapdog@toot.cafeS This user is from outside of this forum
              soapdog@toot.cafe
              wrote last edited by
              #10

              @julian that was a very interesting read. I think I can implement this. Will try a small experiement soon. Thanks for sharing.

              julian@fietkau.socialJ 1 Reply Last reply
              0
              • david_megginson@mstdn.caD david_megginson@mstdn.ca

                @soapdog Part of the problem is that we set the expectation that the fedi would work just like a monolithic social media site. If we reduced that expectation just a little, the demands would go down a lot.

                Users already accept (or fail to notice) that Mastodon's search and hashtag features aren't really global across the fedi.

                soapdog@toot.cafeS This user is from outside of this forum
                soapdog@toot.cafeS This user is from outside of this forum
                soapdog@toot.cafe
                wrote last edited by
                #11

                @david_megginson the good thing about expectations is that we can adjust them 🙂

                I'm not saying replace AP with something else, I'm saying let's build something different and let them all blossom. I really liked the spec described here:

                https://fediverse.codeberg.page/fep/fep/b06c/

                1 Reply Last reply
                0
                • soapdog@toot.cafeS soapdog@toot.cafe

                  @julian that was a very interesting read. I think I can implement this. Will try a small experiement soon. Thanks for sharing.

                  julian@fietkau.socialJ This user is from outside of this forum
                  julian@fietkau.socialJ This user is from outside of this forum
                  julian@fietkau.social
                  wrote last edited by
                  #12

                  @soapdog If you do, be sure to tag @evan! As the FEP author I imagine it would be exciting to hear about new implementations. 🙂

                  evan@cosocial.caE 1 Reply Last reply
                  0
                  • soapdog@toot.cafeS soapdog@toot.cafe

                    I wish #ActivityPub was a "pull" protocol instead of a "push" protocol. The way it works, whenever you take an action, it sends that action to all followers. I would prefer if it simply stored them and then let each follower pull them when they see fit.

                    That would introduce latency and more async comms as your messages wouldn't pop up into someone elses feed until their software fetch the data, but I think it would make it easier to self host.

                    yala@degrowth.socialY This user is from outside of this forum
                    yala@degrowth.socialY This user is from outside of this forum
                    yala@degrowth.social
                    wrote last edited by
                    #13

                    @soapdog

                    We're using pull semantics for data exchange in the federation of wikis, if you'd like to try that out. #FedWiki

                    via @smallcircles

                    1 Reply Last reply
                    0
                    • julian@fietkau.socialJ julian@fietkau.social

                      @soapdog If you do, be sure to tag @evan! As the FEP author I imagine it would be exciting to hear about new implementations. 🙂

                      evan@cosocial.caE This user is from outside of this forum
                      evan@cosocial.caE This user is from outside of this forum
                      evan@cosocial.ca
                      wrote last edited by
                      #14

                      @julian @soapdog ofc, although I think the overemphasis on number of implementations for FEPs is a bad idea. Most standards docs, like RFCs and W3C recs, don't include implementation info. It changes over time!

                      julian@fietkau.socialJ 1 Reply Last reply
                      0
                      • evan@cosocial.caE evan@cosocial.ca

                        @julian @soapdog ofc, although I think the overemphasis on number of implementations for FEPs is a bad idea. Most standards docs, like RFCs and W3C recs, don't include implementation info. It changes over time!

                        julian@fietkau.socialJ This user is from outside of this forum
                        julian@fietkau.socialJ This user is from outside of this forum
                        julian@fietkau.social
                        wrote last edited by
                        #15

                        @evan @soapdog True. I was talking about this just yesterday, if we wouldn't be better served by something wiki-like to host a software project × FEP implementation matrix instead of asking FEP authors to keep their lists updated.

                        That aside, in this context I'm thinking about how more implementations in the wild can motivate other implementers. My own website still isn't AP-capable (it's planned, but low priority). If I knew there were a sizable ActivityPoll user base, I'd more likely use it.

                        evan@cosocial.caE 1 Reply Last reply
                        0
                        • julian@fietkau.socialJ julian@fietkau.social

                          @evan @soapdog True. I was talking about this just yesterday, if we wouldn't be better served by something wiki-like to host a software project × FEP implementation matrix instead of asking FEP authors to keep their lists updated.

                          That aside, in this context I'm thinking about how more implementations in the wild can motivate other implementers. My own website still isn't AP-capable (it's planned, but low priority). If I knew there were a sizable ActivityPoll user base, I'd more likely use it.

                          evan@cosocial.caE This user is from outside of this forum
                          evan@cosocial.caE This user is from outside of this forum
                          evan@cosocial.ca
                          wrote last edited by
                          #16

                          @julian @soapdog I agree, it really lowers the bar for publishers.

                          1 Reply Last reply
                          0
                          • soapdog@toot.cafeS soapdog@toot.cafe

                            I wish #ActivityPub was a "pull" protocol instead of a "push" protocol. The way it works, whenever you take an action, it sends that action to all followers. I would prefer if it simply stored them and then let each follower pull them when they see fit.

                            That would introduce latency and more async comms as your messages wouldn't pop up into someone elses feed until their software fetch the data, but I think it would make it easier to self host.

                            badrihippo@fosstodon.orgB This user is from outside of this forum
                            badrihippo@fosstodon.orgB This user is from outside of this forum
                            badrihippo@fosstodon.org
                            wrote last edited by
                            #17

                            @soapdog makes sense. I never had fear of not being able to selfhost an RSS feed

                            1 Reply Last reply
                            0
                            • soapdog@toot.cafeS soapdog@toot.cafe

                              I wish #ActivityPub was a "pull" protocol instead of a "push" protocol. The way it works, whenever you take an action, it sends that action to all followers. I would prefer if it simply stored them and then let each follower pull them when they see fit.

                              That would introduce latency and more async comms as your messages wouldn't pop up into someone elses feed until their software fetch the data, but I think it would make it easier to self host.

                              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 last edited by
                              #18

                              @soapdog@toot.cafe hmm... just thinking aloud here.

                              You posit in another post that the network effects inflate exponentially:

                              > Push models are resource hogs that approach exponential growth in a large network like the fediverse

                              That's not true. If you post a message then it sends a copy to each follower. That's linear growth. If you collapse recipients via shared inboxes you can reduce that further.

                              If you're referring to the torrent of requests that happen if your post is shared (the "thundering herd" problem) then that's actually a PULL happening from those requesting instances!

                              Secondly, in a pull model of AP, you would need to continually poll servers of all your followers so as to approach a real-time effect. You'd be polling servers over and over again, and many of them would have nothing new, with so much wasted traffic.

                              If your expectations include semi real-time updates, the push model is much more performant, in my humble opinion.

                              1 Reply Last reply
                              0

                              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                              With your input, this post could be even better 💗

                              Register Login
                              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