EDIT: whoops I fragmented this, continuing from https://social.coop/@cwebber/113647306776014159
> 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...
> 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? https://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
https://datatracker.ietf.org/doc/rfc9518/
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
Let's look at the delta between my definition of decentralization and the one chosen by Bryan:
- The discussion of power dynamics, and diffusion thereof, is removed
- The "phrase complete" reliance is introduced, so incomplete reliance is now ok
- And not only that, now it's "not always required!"
In my previous blogpost I had expressed worry about moving the goalposts of "decentralization". That is *exactly* what's happening here, and what's being said is "if we weaken the definition dramatically, then Bluesky qualifies"
This is, IMO, not a very compelling look I've gotta say
Now you might notice this citation [Baran, 1964] and hey if you work on network things you might be thinking "Hey Christine, wait isn't this one of the seminal papers on networking which led to the internet?"
GOOD QUESTION LET'S COME BACK TO THAT
The context is CRITICAL.
Back to that in a moment.
Okay so "decentralization", maybe Bluesky qualifies if we use an unimaginably weaksauce definition that's so loose you don't even have to comply with it hardly at all?
So okay now let's compare definitions of "federation".
My definition:
> [Federation] is a technical approach to communication architecture which achieves decentralization by many independent nodes cooperating and communicating to be a unified whole, with no node holding more power than the responsibility or communication of its parts.
Bryan's definition (more accurately Mark Nottingham's definition):
> [...] federation, i.e., designing a function in a way that uses independent instances that maintain connectivity and interoperability to provide a single cohesive service.
Hm okay, well these don't look quite as far apart, right?
@cwebber Nonono. No tea breaks...!
Consistentea!
The tea must flow.
@cwebber Side adventure: is email federated by that definition?
This thread is A TRIP.
Breath=Bated
@cwebber might that be better said to be *distribution* rather than *decentralization*?
@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).
@david_megginson @cwebber Find from what perspective? Christine’s definitions have touched upon price, practicalities etc I don’t think “fine” is the correct term. Mastodon nonprofit two instances make up 30% of the active MAU, if they shut down it would not be “fine”. I’ve seen plenty of people say mastodon.social is too big to block, that doesn’t reinforce what you’re saying nor several of Christine’s points. The factors are largely what’s practical meaning what’s been adopted by the masses. Idk about you but cutting off 30% wouldn’t qualify as fine in many cases
@cwebber I don't know if Dave Farber and his DCS project used the word decentralized, but it was certainly a big, early, and often forgotten early step.
(The D in DCS stood for "distributed".)
@cwebber That is a good one. Nice, and succinct. And from a systemic perspective, "Bluesky Social PBC" is a node upon which complete reliance is always required. It does not have to be a hardware device.
Archive.org could host 1000 Bluesky relays without even noticing the overhead. Could finding ways to support and safeguard a few massive nonprofit mirrors (with moderation at the app view level) be more practical than expecting the propagation of many thousands of very large fediverse servers storing all that redundant data?
@cwebber See also, and I unashamedly quote slides that I'm quoted in quoting someone else, DINRG in Dublin...
https://datatracker.ietf.org/meeting/121/materials/slides-121-dinrg-discussion-of-next-steps-00.pdf
@cwebber @bnewbold Just as a side comment, Mark's document was an independent submission to the RFC Series, so it was not an IETF submission upon publication. You can see that in this boilerplate text "This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion. " There's a lot of history behind that choice which either @mnot or @eliotlear could provide as context better than I can.
@cwebber I found Secret Goblin #1!
Off topic, I don't know if you need music described as goblincore, but
I saw this album a while ago self-described as goblincore.
"This 20-song musical adventure was inspired by the 1986 film in which David Bowie played The Goblin King. "
https://aureliovoltaire.bandcamp.com/album/the-black-labyrinth-a-requiem-for-the-goblin-king
@cwebber
I love brief goblin break
@cwebber hey, First Secret Goblin popped up! Does it want to be petted, or does it want to bite me in the shin and steal my lunch?
@viq it likes pets
@cwebber I found the first secret goblin!
@cwebber Found it! YESSS!
@cwebber found a goblin. Woohoo
@cwebber Goblinses?! In my Fediverse?
*It's more likely than you think!*
Found Secret Goblin #1!
@cwebber
I encountered Secret Goblin #1. I have survived this far…
@cwebber
Thanks for the thread! I've just found the first Goblin.
@cwebber The goblins were the reasons I donated!
@cwebber tangent: I still remember a ChiPy meeting where you showed us MediaGoblin many moons ago.
Thanks for all the good work you’ve done then and now.
@cwebber Actually I want "jet wing money" to be a term now.
@cwebber jet wing money? I'll be lucky if I ever have inkjet money.
@cwebber @spritely Fighter planes don’t even NEED two wings. Why isn’t the war insurance senate committee denying these unnecessary claims?
https://www.sandboxx.us/news/that-time-an-f-15-landed-without-a-wing/