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.
  • lovestha@floss.socialL lovestha@floss.social

    @soapdog it would be very mixed. Posting in self hosting be more trivial, but loading a feed would require querrying hundreds or thousands of servers.

    Particularly when thinking of all the dead/inactive accounts that would need to be queried...

    And those queries would be a bit expensive.

    It would also radically reduce the reach of public posts, they'd only be visible on other servers after a follower had refreshed their feed, this would break public feeds

    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
    #4

    @LovesTha it would be a radically different experience indeed. The key is when to fetch, right? You can’t fetch as you build the feed for visualisation, fetching is slow.

    You need to either make it an explicit action such as a refresh button or fetch in the background according to some interval.

    Regardless, you would cache it and the feed always shows the cache. It might be out of date but it is local and fast.

    Marking broken and inactive accounts is easy.

    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.

      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