Email or username:

Password:

Forgot your password?
Top-level
Christine Lemmer-Webber

WE are not describing the future of routing small packets in 1964, that is NOT the world we are existing in, where "decentralized" meant a top-down hierarchical structure

When WE talk about "decentralized", we mean roughly a spectrum, with "centralized" on one side and "decentralized" on the other

63 comments
Christine Lemmer-Webber replied to Christine

Now I don't think Bryan Newbold realized that when he pulled his definition from Mark Nottingham who pulled his definition from Paul Baran, that this was the case. I think this is a game of telephone.

(I don't know how Mark Nottingham didn't realize it but that's an aside)

Christine Lemmer-Webber replied to Christine

What I DO know is that it means that the entire structure of analyzing decentralization in Mark's paper and Bryan's blogpost thus, in practice, surround a term that is weak because it was FUNDAMENTALLY describing a centralized system, so it could criticize it

The loss of context here is BRUTAL

Christine Lemmer-Webber replied to Christine

To conflate the two *automatically* introduces decentralization-washing. I don't think this is intentional, but it explains a lot.

It explains how a "weak" definition of decentralization could come from one of the boldest visions of what that very *idea* could be

Christine Lemmer-Webber replied to Christine

Now okay let's point out the irony here because I feel like if I don't I'm being mean. Bryan does say:

> To some degree, I don't really want to spend time in a terminology debate.

And I just did! At length!

But the whole debate this whole time is "is Bluesky decentralized" so we kinda HAVE to

Christine Lemmer-Webber replied to Christine

But also what happened was:

- I lay out a strong definition of decentralization; Bluesky doesn't match
- Bryan suggests an alternate definition, pulls
from
- An RFC which despite the title is extremely lukewarm AT BEST about decentralization which pulls from
- A definition describing centralization

Christine Lemmer-Webber replied to Christine

And I don't think this was malicious on Bryan's part in the least because I know Bryan well enough to know he's not like that!

I am pretty annoyed at Mark though for quoting this out of context in such a way that it can completely confuse a narrative like this. I'll assume that was a mistake but

Christine Lemmer-Webber replied to Christine

The reality is that Bluesky didn't match my definition of decentralization, and I hope it's pretty clear now that the alternate definition supplied was literally one about centralization

And so that cannot possibly be a lower bar that we say "okay maybe Bluesky can pass this one" I am sorry

Christine Lemmer-Webber replied to Christine

Let's PLEASE not move the goalposts on "decentralization". Let's certainly not move them back to something that was literally "here's what centralization looks like in practice".

That's what I'm asking for here. That's why I went so goddamned HARD on terminology here.

Christine Lemmer-Webber replied to Christine

Let's check the time.

It's 7:30pm where I am. I woke up at 4:30am and resumed work on my blogpost at 5am.

I have been, for the most part, between the blogpost, my job, and this thread, sitting at my computer fighting for decentralization for about 14 hours. It's been like that a lot lately.

Christine Lemmer-Webber replied to Christine

I have a reputation at work of being good at pushing others to take off time and they HAVE to take off time OR ELSE and I try to be that way in general. But I am really truly bad at doing so for myself and I know I have crossed my limits for today.

So let's wrap up for *tonight* in a sec

Christine Lemmer-Webber replied to Christine

We're about halfway through this blogpost. There's a lot going on in my life. I am trying so hard to keep the organization I work for alive and moving forward. I am tired. I need rest. And I still need to drive two hours across the state tonight.

We're going to resume tomorrow. But first...

Christine Lemmer-Webber replied to Christine

There's a reason I'm going really hard on this. I really care a lot about the shape of the internet. And tomorrow we're going to get into some more analysis and a talk about *values*, and one thing I like is that Bryan talked at length about Bluesky's values. And I think that part was really good.

Christine Lemmer-Webber replied to Christine

For tonight, I need to unwind, I need to put a label on a mailbox, I need to eat dinner, I need to drive across the state, I need to sleep.

Maybe I appear ridiculous. I get it. I go pretty hardcore on this stuff. If you know me you know I tend to go all in.

Christine Lemmer-Webber replied to Christine

I am signing off for the night. Tomorrow we will analyze whether or not my assertion that "ATProto has explosive behavior as it approaches decentralization" problems.

I'm not going to read notifications until I finish this. Maybe someone will prove me wrong before I get it done.

I'll be oblivious.

Christine Lemmer-Webber replied to Christine

We will also analyze values, which maybe I care about more than anything. And there will be more secret goblins, hidden among the posts.

For tonight, it's rest time. It's time for a

=== NO MORE LOOKING AT MY COMPUTER BREAK ===

Christine Lemmer-Webber replied to Christine

Hello! I am back at my computer. Today we are going to talk about how ATProto does in terms of scaling. Yes, we know it scales up, and has done an impressive job of doing so!

But what about scaling towards decentralization? Does it scale down? And does it scale wide? Let's look.

Christine Lemmer-Webber replied to Christine

Before we get deep into that, when we left last night I was extremely tired and had been working at my computer for over 14 hours. I then said I was going to drive two hours across the state that evening.

Thankfully thanks to the support of people who love me, I did not do that foolish thing!

Christine Lemmer-Webber replied to Christine

So anyway, I am better rested, and also I woke up to the surprise that our fundraiser is doing a lot better, like by a lot, than it was yesterday, which is nice because I was extremely stressed out spritely.institute/donate/

So I am feeling much better and alive and today I remembered to eat lunch

Christine Lemmer-Webber replied to Christine

But you probably aren't here to hear about my lunch choices or how much sleep I got or whether or not I forgot to bring my ADHD medication with me (I did so now I am drinking a bunch of caffeine instead), you are probably here to hear the rest of the analysis about decentralization and Bluesky etc

Christine Lemmer-Webber replied to Christine

So let us get to it, let's talk about whether or not Bluesky can scale *down* in a meaningful way.

In my last essay I made assertions that this was important for decentralization and said ATProto wasn't great for this, and this was one thing people challenged me on

So let's take a look!

Christine Lemmer-Webber replied to Christine

When I say "scale down", what I generally mean is "small instances can generally participate on the network". (We'll talk about "scale wide" later.) But another useful possibility which has come up is "can you make a smaller, more isolated use-case and use the same protocol for it"

Christine Lemmer-Webber replied to Christine

This latter version of scale down does come up in Bryan's article:

> A specific form of scale-down which is an important design goal is that folks building new applications (new Lexicons) can "start small", with server needs proportional to the size of their sub-network.

(cotd)

Christine Lemmer-Webber replied to Christine

Strictly speaking, I agree, ATProto can scale down in this use case! For example, if you wanted to make a small specialized forum for collaborative storytelling, you could use ATProto for it, and that's true, you could do it

But is it the right choice?

Christine Lemmer-Webber replied to Christine

In some ways we are talking about two different things here: extension of functionality (which you might want the same scale for) and having a smaller and more isolated community

But regardless

Christine Lemmer-Webber replied to Christine

ATproto positions itself *specifically* as designed for not wanting to miss messages, and I talked previously about how ATProto's design requires a god's-eye view.

It's a bit strange of a choice when you say "let's run a smaller community"

Christine Lemmer-Webber replied to Christine

Given that message passing systems handle small scale systems *beautifully*, and *still* allow for interactions with larger scale systems, it's a bit confusing to me *why* you'd choose ATProto for such use cases. What is the specific benefit you'd gain? Especially because it's actually lossier here

Christine Lemmer-Webber replied to Christine

At any rate, there's a bit of conflation here. "It scales down" by saying "you can have an isolated community/use case that's oblivious to the rest of the system" is categorically distinct from "it scales down" in terms of "a small node can meaningfully participate with the larger system"

Christine Lemmer-Webber replied to Christine

At any rate, the problem with "scaling down" is much clearer when it comes to the problem of "scaling wide".

Or let me put it a different way: ATProto *explodes in complexity* when you try to scale it towards meaningful decentralization

Christine Lemmer-Webber replied to Christine

Yes that's right we're getting to the spicy part of this conversation. We did the warm-up, now it's time to talk about the real thing, whether or not decentralization in the way I believe people *think* that term means is reasonably possible with ATProto as it's currently designed

Christine Lemmer-Webber replied to Christine

But before we do that, I need to stretch and run to the bathroom

So for those of you following along, if you found this, Secret Goblin #3, let me know: "👺"

Oops wait actually we gotta talk about that one for a sec there's a reason I left it in scare quotes

Christine Lemmer-Webber replied to Christine

Why on earth is the textual descriptor for Unicode U+1F47A "JAPANESE GOBLIN", does anyone know?

It's a Tengu, right?

Despite being the only actually named "goblin" emoji, I feel awkward about this one because is it correct to call it a "JAPANESE GOBLIN" instead of just "TENGU"?!?!

I don't know!

Christine Lemmer-Webber replied to Christine

If you have knowledge or OPINIONS about "👺", its name choice in unicode, or, for that matter, a white person just dropping it in the middle of a group chat WITHOUT putting it in quotes (I did tho), feel free to derail the comment thread

Otherwise it's time for a

=== STRETCH BREAK ===

Christine Lemmer-Webber replied to Christine

I'm back. It's time to talk about it: does Bluesky/ATProto suffer a "quadratic explosion" as we move from centralization towards *meaningful* decentralization?

I claimed it did, but I was challenged on this. What did I mean? Am I right or wrong?

It's time to find out!

Christine Lemmer-Webber replied to Christine

In the previous blogpost I said the following:

> If this sounds infeasible to do in our metaphorical domestic environment, that's because it is. A world of full self-hosting is not possible with Bluesky.

(cotd)

Christine Lemmer-Webber replied to Christine

Decentralized ATProto is quadratic quote, cotd:

> In fact, it is worse than the storage requirements, because the message delivery requirements become quadratic at the scale of full decentralization: to send a message to one user is to send a message to all. Rather than writing one letter, a copy of that letter must be made and delivered to every person on earth.

Christine Lemmer-Webber replied to Christine

This was probably the thing I got the hardest pushback on from a team member of Bluesky, that it is not quadratic as we scale towards decentralization.

Truth be told, I don't have a degree in CS. Most of what I know I learned from studying independently and community resources. Was I wrong?

Debate between myself and why.bsky.team about whether or not ATProto is quadratic as we decentralize it.

We both agree that agency is the most important thing anyway, more on that later.
Christine Lemmer-Webber replied to Christine

Just as a quick aside, regarding that comment about "agency", maximizing the agency of everyone (and more importantly, minimizing subjection!) sits at the heart of my ethical framework fossandcrafts.org/episodes/11-

So I don't disagree on that part, but that's an aside!

Christine Lemmer-Webber replied to Christine

Now, I said I won't read replies until I am done summarizing things, and that's true, so maybe someone has gone out of their way and proven that I am wrong, that the claims in my article are factually incorrect and so on and so forth. I wouldn't know yet.

But... I don't think I'm wrong.

Christine Lemmer-Webber replied to Christine

As said I'm very self-conscious about these things because I *don't* have formal CS training. But I do a lot of research and so I've tried to become knowledgeable about these things and this *seemed* like the correct analysis to me

Because of that, I turned to people who actually knew more than me

Christine Lemmer-Webber replied to Christine

For one thing I derailed the entire Spritely morning standup by walking everyone through the scenario. I gave the story example, which I'll detail later.

But @dthompson didn't find the story helpful, too much narrative detail. "I need to work through this example independently." So he did.

Christine Lemmer-Webber replied to Christine

@dthompson came back and laid it out in more formal terms and said I was right.

But I was still nervous, so I called up one of my old MIT AI Lab type friends and rambled about it to them on a call. What did they think?

Christine Lemmer-Webber replied to Christine

"I think it's pretty clear immediately that it's quadratic. This is basic engineering considerations, the first thing you do when you start designing a system," they said.

Well that's a relief, why isn't it clear to everyone else, I asked?

So they suggested I lay it out to you as I did to them.

Christine Lemmer-Webber replied to Christine

Let's start with the following:

- ATProto has positioned itself as "no compromises on centralized use cases". Well, in that case, let's say it can't do *worse* than eg ActivityPub. This includes with replies. You can't do *worse* than ActivityPub on replies and mentioning someone, etc.

Christine Lemmer-Webber replied to Christine

- We will interpret the most centralized system as one where there's only one provider for storage and distribution of all messages: the least amount of user participation
- The flip side of the spectrum of maximum decentralization is the *most* amount of participation: every user self-hosts.

Christine Lemmer-Webber replied to Christine

- Just as blogging is decentralized but Google (and Google Reader) are not, it is not enough to have just PDS'es in Bluesky be self-hosted. When we say self-hosted, we really mean self-hosted: users are participating in the distribution of their content.

Christine Lemmer-Webber replied to Christine

- We will consider this a gradient. We can analyze the system from the greatest extreme of centralization which can "scale towards" the greatest degree of decentralization.

Christine Lemmer-Webber replied to Christine

- Finally, we will analyze both in terms of the load of a single participant on the network but also in terms of the amount of network traffic as a whole.

Okay. That is the structure we will use for our analysis. Let's compare "message passing" vs ATProto-style "global public shared heap".

Christine Lemmer-Webber replied to Christine

So okay. Let's get the CS notation out of the way:

"Message passing" at full decentralization:
- O(1) from a single node's perspective
- O(n) from a whole-network zoom-out perspective (inherent: add a user, it's one more user)

Okay, that's reasonable and what you'd expect

Christine Lemmer-Webber replied to Christine

"Public global no-missed-messages (or not worse than AP) shared-heap" ATProto style at full decentralization:
- O(n) from a single user's perspective (!)
- O(n^2) from a whole-network perspective (!!!!!!)

Oof I'd better back this up because that ain't good!

Christine Lemmer-Webber replied to Christine

In other words, as our systems get more decentralized, message passing handles things fine. Individual nodes can participate in the network no matter how big it gets. The zoom-out for the network as a whole doesn't get more complicated as we add more users OR move more users towards self hosting.

Christine Lemmer-Webber replied to Christine

Things are NOT good, if I'm correct above, as we make things more decentralized in the atproto-public-shared-heap model. The more self-hosting and indeed the more "full nodes" join, the more it gets expensive for each of the nodes and the network EXPLODES!

Truly self-hosted atproto is NOT POSSIBLE!

Go Up