So, if you’re online poisoned like me, you may have noticed that Bluesky CEO Jay Graber has been having sort of a slow motion, low-key public meltdown for the past several weeks. Most recently, in this interaction with a user.
@jcsalterego.bsky.social on Bluesky: "(bluesky user bursts into Waffle House) OH SO YOU HATE PANCAKES??" @jay.bsky.team quotes posts this with: "Too real. We're going to try to fix this. Social media doesn't have to be this way." @antioccident.bsky.social replies to jay asking "have y'all banned Jesse Singal yet or" and Jay responds with "WAFFLES"
[…]
Even with practical technical decentralization, the vast majority of Bluesky users are on, well, Bluesky. Bluesky was never really packaged as something that was relatively easy for someone to spin up on their own servers; the network has been historically extremely centralized, and only small minorities of users have broken off.

AT Proto decentralization doesn’t exist as a practical reality, and if it ever does it won’t be for years. Most of the work driving effective decentralization is being done by third parties, who have limited guarantees about future compatibility with possible breaking changes on Bluesky’s end.

Bluesky inc isn’t really making ‘a protocol’, they’re making Bluesky, the monolithic (to within a rounding error) social network that they operate.

I do genuinely believe that the Bluesky team set off from the start to create a decentralized protocol, but unfortunately for them they ended up running a social network. And at this point, AT Proto has become essentially a sort of ideological vaporware; a way for Jay Graber et al to run a social media platform while claiming they don’t run a social media platform.

This is, of course, just another iteration of the Silicon Valley monoproduct: power without accountability. The tech industry elite are very much like Gilded Age railroad barons – buying up whole towns, breaking up strikes, imposing top-down economic policy on whole sectors – except all the while they claim that they are just technology enthusiasts playing with their little trains.

  • INeedMana@piefed.zip
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 days ago

    ActivityPub works fine now because the community is fairly small, but it will reach its limits as it is currently designed. Its basically an event driven model vs a push and pull model. Sure a docker image can more or less jusy be deployed, but that simplicity is a ticking time bomb.

    You mean that when there’s more traffic, the instances will start to DDOS each other?

    • wisdomchicken@piefed.social
      link
      fedilink
      English
      arrow-up
      5
      ·
      2 days ago

      i ddos my wordpress-activitypub-enabled website every time i boost a post made from there to my 10k followers. tried every single caching plugin for it as well.

      activitypub scaling is a very real issue

      • poVoq@slrpnk.net
        link
        fedilink
        English
        arrow-up
        5
        ·
        edit-2
        2 days ago

        ActivityPub is designed to scale well for millions of users with a low number of subscribers each (Dunbars number and so on). It is not designed as a mass media publishing tool where a few have tens of thousands or even millions of followers.

        I consider this a feature, but feel free to disagree.

      • INeedMana@piefed.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        It gets DDOSed because after the boost, all the subscribers’ instances are calling it to retrieve the content?

        Do you think a load balancer might help?

    • chilicheeselies@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      2 days ago

      Yeah i guess you could look at it that way. Each instance would have to scale horizontally to handle the load, which is waste.

      I could be wrong, but my understanding is that ActivityPub is just a rest api contract that one can implement in order to communicate with the rest of the “network”. Its simple, but its such massive overhead to do this all via http. Pushing all your instances events to a dedicated stream and letting the other instnaces read it can be more performant and handle the load better. The downside though is who controls the streams?

      IRC is the OG of federation, i am sure we could learn something from it and have federated networks that are in turn federated with eachother. I dunno, just thinking out loud here.

      • INeedMana@piefed.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 days ago

        But is that a limitation of AP?

        As far as I understand one could split a fediverse instance into three parts: data, backend and UI. The data is not shared 1to1 - each instance gets a copy of the activity and from that creates it’s own copy. Hence the same post on different instances will have different id The problem we are speaking about is the capability of the backend to process incoming copies. Meaning, I also understand that the part that serves the local data to UI should not be the problem

        What if there was a queue at the front and from the backend a scalable ingestion worker would be split off? Those would only do the putting the actions onto the data. Probably with per community(?) FIFO topics/partitions, so we can process data in parallel and not worry about an updoot for a post that does not exist yet

        Those would still be fairly easy to deploy and be vertically scalable, right? Or is there some bottleneck in the protocol itself?

        • chilicheeselies@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 days ago

          So lets say there are 100 instances. My instance needs to issue api requests to each instance to sync with the network. They in turn need to issues 100 requests to me to sync (and eachother). What about when there are 100k instances? Its exponential.

          From the looks of AT, its farily linear because its really just operating on a set of giant event streams (like kafka).

          To me, ActivityPub being based on REST APIs was always a problem. On the upside it makes it approachable, but its not really the right tech imo. Use something without the overhead of http headers and whatnot.

          • poVoq@slrpnk.net
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 day ago

            So lets say there are 100 instances. My instance needs to issue api requests to each instance to sync with the network. They in turn need to issues 100 requests to me to sync (and eachother). What about when there are 100k instances? Its exponential.

            This falsely assumes that everything gets federated to everyone, which isn’t the case for ActivityPub. You only get what you actually subscribe to with it.

          • INeedMana@piefed.zip
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 day ago

            From the looks of AT, its farily linear because its really just operating on a set of giant event streams (like kafka).

            Wouldn’t that mean that this stream will have to scale horizontally?

            • chilicheeselies@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 day ago

              Yes eventually, just like the instances do once enough users are hitting it. Its a matter of how much all servers in the network need to scale, but also the nature of the protocol itself. Streaming binary data is more performant than individual http api requests for instance. Event streams are the way to go un a decentrliazed network for sure.

              • INeedMana@piefed.zip
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 day ago

                With AP does the exchange have to be http requests? If every instance had a stream instead, would that break the protocol?

                With decentralized AT, who would be maintaining the stream? On the image I don’t see a connection between the alternative firehose and right-side pds’

                • chilicheeselies@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  1 day ago

                  I suppose technically someone could implement streaming using AP payloads. So long as the format of the payloads are the same they could translate. It would be a different thing though without the pull part of it