EDIT: whoops I fragmented this, continuing from social.coop/@cwebber/113647306

> However, I disagree with some of the analysis, and have a couple specific points to correct.

Well this wouldn't be a 20 page response to a response if @bnewbold and I agreed with everything off the bat now would it

One thing @bnewbold did agree on is that "shared heap" and "message passing" are useful distinctions.

In fact I've seen members of the Bluesky team use "shared heap" a few times since to explain their tech since, and many people replied saying this distinction was illuminating. I'm really glad!

Now the reality is that "message passing" is hardly a new term

As far as I know though, I did introduce the term "shared heap"

I didn't know what else to call it! Wait actually no that's not actually fully true

If I was going to refer to the CS literature I would probably say that "ActivityPub uses an actor model style approach whereas ATProto uses a global, public, shared tuplespace"

But I wanted the mail metaphor to work and I was pretty sure everyone's eyes would glaze over at "tuplespace"

Anyway, language is this messy squishy thing but part of the success of the previous post I think was terms that allowed us to discuss differences clearly.

(And it is EXACTLY for that same reason that I am gonna dive into analyzing terminology deeper in just a little bit.)

Moving on...

Let's talk about some acknowledgement of scaling expectations, starting with this terminology, happened in @bnewbold's response because I think it's very helpful!

(BTW whenever I quote something with ">" in this thread, if I don't otherwise specify, I'm quoting @bnewbold)

> Other data transfer mechanisms, such as batched backfill, or routed delivery of events (closer to "message passing") are possible and likely to emerge. But the "huge public heap" concept is pretty baked-in.

Okay this is helpful. This sets expectations. This is good to acknowledge.

> Given our focus on big-world public spaces, which have strong network effects, our approach is to provide a "zero compromises" user experience. We want Bluesky (the app) to have all the performance, affordances, and consistency of using a centralized platform.

This is also good to acknowledge.

> So, yes, the atproto network today involves some large infrastructure components, including relays and AppViews, and these might continue to grow over time. Our design goal is not to run the entire network on small instances.

Okay yes, yes this is good to ack

> It isn't peer-to-peer, and isn't designed to run entirely on phones or Raspberry Pis. It is designed to ensure "credible exit", adversarial interop, and other properties, for each component of the overall system.

Good okay thank you

> Operating some of these components might require collective (not individual) resources.

Hm okay, this is also good. Okay remember this sentence. This sentence is gonna be really important in just a minute.

But before we get there oh hey, when I wrote my last blogpost I said "whoa in just 4 months storage expectations jumped from 1TB to 5TB. I bet in a month it'll be double, at least 10TB."

Whoops I underestimated, @bnewbold says in his post it's now at least 16TB. Growin' fast!

@bnewbold also mentions new initiatives like Jetstream and other tooling that provide a lighter experience

well, and that's true! ... though that's done by weakening the "zero compromises experience" quite a bit if you wanted to use them to "self host", more on that later

Now okay remember when I said "this sentence is gonna be important"

You've forgotten it already?

Okay fine I'm gonna quote it again

> Operating some of these components might require collective (not individual) resources.

Okay don't forget it this time! Don't forget it!

> This doesn't mean only well-funded for-profit corporations can participate! There are several examples in the fediverse of coop, club, and non-profit services with non-trivial budgets and infrastructure.

This is certainly true on the fediverse, I am hosted by a co-op. Thank you social.coop 💜

(@bnewbold is also on social.coop!)

> Organizations and projects like the Internet Archive, libera.chat, jabber.ccc.de, Signal, Let's Encrypt, Wikipedia [...], the Debian package archives, and others all demonstrate that non-profit orgs have the capacity to run larger services.

Wait a minute hold on

> Many of these are running centralized systems, but they could be participating in decentralized networks as well.

no wait but wait back up hold on what was that list again

Ok, XMPP and IRC are mostly ephemeral text and I love them, but let's be honest, they're pretty niche and on the decline

I've just... wait a minute we've got to look at some of the org choices here

What are the annual budgets of these FOSS service-hosting orgs?

- Wikimedia: $178 million/year
- Signal: $50 million/year
- Let's Encrypt/ISRG: $7 million/year
- Internet Archive: $25 million/year

This is public information, you can look this up! Read their 990s.

This is all to say, this is not your neighborhood block getting together to pitch in a few bucks to help out their FOSS friends

These are great orgs and compared to large for-profits, these orgs are efficient and use their money well

But these are SIZABLE hosting costs, and NOT easy to fundraise

I say this, by the way, as an Executive Director of a FOSS nonprofit with a much smaller budget and also oh god I hate fundraising I promised myself I would never do a fundraising job again why am I doing this

Did I mention we're doing a fundraiser? spritely.institute/donate/

Just sayin' ;_;

People worry about wasteful funding, and right now FOSS organizations are losing many of the funding sources they have. Project 2025 specifically targeted taking the incredibly small amount of money that FOSS orgs get from governments

Fundraising is the worst and it's so hard to fund anything

My friend @n8fr8 of the Guardian Project likes to point at Signal's budget and say "yeah that looks big, but you know how much the government spends on each fighter jet?" and it's some unimaginably large number, like *hundreds* of millions of dollars per jet

Signal is the cost of a jet wing

Anyway we should give Signal the jet wing money

Can someone get @spritely some of the jet wing money?

Anyway you'd think if you were upset about the government "taking your tax money" you'd at least want to get something out of it and FOSS helps everyone so this is so frustrating

So that's all to say that I think the choice of these orgs is pretty interesting because when you say "oh a bunch of FOSS nonprofits host community infrastructure" we're not talking social.coop costs with a bunch of these we're talking jet wing money

It's really hard to get that jet wing money

Anyway I'll stop talking about the jet wing money I promise

jet wing money jet wing money jet wing money

Please give FOSS nonprofits jet wing money

But anyway THE POINT IS what kinda scale are we thinking about? What's your frame of reference? Fediverse co-op? Or Signal?

But speaking of running FOSS nonprofits I now have an EXCITING MEETING about administrative duties of running my FOSS nonprofit

So, it is time for a... MEETING BREAK (like, an hour)

Followed by a tea break. (like, 10 minutes)

==== MEETING AND TEA BREAK HERE ====

Okay, I'm back from my meeting. I also have tea.

We're about to get to the first REALLY substantial part, which is terminology. Is it fair to call Bluesky "decentralized" or "federated"?

Both @bnewbold and I provided definitions and we are going to COMPARE and ANALYZE

Before we go any further I am just gonna say, I miss hiding the easter eggs, but I don't think I can do that again

If you know anything about my projects you know that I love goblins. Have for a long time. When we launched MediaGoblin I would get people saying "nobody will ever like goblins"

WELL

Now we live in an era of "Goblincore" and people self-describing as Goblins

I am pleased. And I am pleased to be into Goblins before they were cool.

The Goblin theme continues at Spritely as you may know

But if you've read this far, let me know that you found Secret Goblin #1 😈

So, is Bluesky decentralized? Is it federated?

In my previous blogpost, I concluded that Bluesky was not either.

@bnewbold conceded that maybe Bluesky does not meet *my* definitions, but provides some alternative definitions, which maybe it does meet

Were my definitions too strong or unfair?

@bnewbold declares he will "choose his own fighter" and selects Mark Nottingham's independent IETF submission, RFC 9518: Centralization, Decentralization, and Internet Standards
datatracker.ietf.org/doc/rfc95

It's an interesting document, and it turns out, has some interesting context

Bryan cites Mark's definition of *centralization* (which I hadn't defined!):

> [...] "centralization" is the state of affairs where a single entity or a small group of them can observe, capture, control, or extract rent from the operation or use of an Internet function exclusively.

Good so far!

However it's time to compare definitions of *decentralization*. First mine:

> Decentralization is the result of a system that diffuses power throughout its structure, so that no node holds particular power at the center.

I stand by this!

Now here is Bryan's definition (more accurately Mark Nottingham's definition (more accurately, Paul Baran's definition)) of decentralization:

> [Decentralization is when] "complete reliance upon a single point is not always required" (citing Baran, 1964)

Uh, hm... this seems... pretty weak?!

This definition of decentralization is so weak it may as well say "Users occasionally not rely on a central gatekeeper, as a treat"

It's pretty weak, and yeah Bluesky qualifies, but that's... I'm gonna be honest that's an *incredibly* weak definition by comparison

@cwebber Yes, very true. A network is decentralised only if you can remove any node and the network keeps functioning.

If we removed a giant node like mastodon.social, we'd temporarily lose a lot of accounts but the fediverse would keep functioning just fine (probably better in the long run if it permanently eliminated a dominant player).

#fediverse

Follow

@david_megginson

The thought occurs that it's not so black and white because functionality changes depending on what you're observing and from where.

For example, you might argue that removal of a minor node would have no discernible impact on the overall system, but it would have a critical impact on the few users of that node.

I've long said that Fediverse isn't so much decentralized as re-centralized around instances. So I guess that's what people mean by federated instead of decentralized.

It seems like Bluesky addresses this better, being more decentralized in terms of not being reliant on instances.

@cwebber

@volkris Thanks for your reply.

You're right that if a node in a decentralised network model goes offline, those using the node are disconnected from the network, but the remaining nodes continue to function as a network.

From what I understand, Bluesky uses more of a hub-and-spoke model, which creates a single point of failure in the centre. It's entirely reasonable to argue that it gives a better user experience, but it doesn't match any definition of "decentralised."

@cwebber

@david_megginson

My memory of Bluesky is the opposite, but I'm not at a computer to double check that right now.

As I recall, ActivityPub is the hub and spoke with instances acting as hubs to the spokes of user interfaces while BlueSky allows users to engage through multiple repeaters (whatever they call them) avoiding that point of failure.

@cwebber

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.