hachyderm.io is one of the many independent Mastodon servers you can use to participate in the fediverse.
Hachyderm is a safe space, LGBTQIA+ and BLM, primarily comprised of tech industry professionals world wide. Note that many non-user account types have restrictions - please see our About page.

Administered by:

Server stats:

9.4K
active users

Part of my frustration with and one of the things I find baffling giving everything else in it: the lack of tools for backpressure.

Backpressure is fundamental in building reliable distributed systems (c.f., Notes on Distributed Systems for Young Bloods). From a C2S perspective I get why it wouldn't need to be specified, but from a S2S _federated_ protocol perspective its absence is frustrating.

All that it says is to take care not to overwhelm _others_ and a bit on rate limits

@hrefna yes.

But I also want state convergence. No matter what, different hosts are going to wind up with different views of the state of the graph. Why are there no mechanisms to detect that and enable convergence?

@jenniferplusplus Yes. Yes. A million times yes.

There's no _sync_ capability despite that we're basically building a distributed database where we are trying to have a sync'd state.

So if you fall off for a few hours what is expected to happen?

Everyone's favorite thing from C++: Unspecified.

@hrefna @jenniferplusplus the more y'all talk about AP the more we want to stay away from it heh.

if it's worth anything: thanks for that.

Jenniferplusplus

@SoniEx2 @hrefna These things are all fixable problems, it "just" takes coordination between a few dozen part time volunteer implementers 😭

I tell myself I'm going to just do it unilaterally and then help everyone else catch up. I'm not sure if I'm lying to myself or not.

@jenniferplusplus@hachyderm.io:

I want a mechanism to determine if two party's view of a collection are equivalent. I want to be able to query if an object is contained in a collection without enumerating the whole collection. I want a mechanism to request re-delivery or maybe failed delivery notifications.

For what it's worth, these are all goals that would align well with the interests of a broad set of implementors. I make a little noise now and again about the SWICG forum task force, but directly addressing some of these concerns would definitely be on our radar.

Current focus is on aligning on a common object type for higher level collections (the context), but I'm thinking that Collection (ordered, ideally) would be the best fit and also allow for future use cases like you mentioned earlier.

You have the ideas, we might be able to supply the coordination...

cc @hrefna@hachyderm.io @SoniEx2@chaos.social

@julian
Yeah, I've been trying to keep up with it. I've generally stepped back from the swicg lately, although you seem to have the most functional wing of that org. I've imagined reengaging in the future, when I can lead with an implementation. Otherwise it's just more theorycrafting, and there's too much of that already.

If maintainers of real implementations in the forasphere are soliciting input, that might be another story.

@hrefna @SoniEx2

Yeah I've had a number of times where I wanted to query a collection - but hopefully something a bit more lightweight than a full blown query language.

And in the Nomad protocol, we've got delivery notifications. It's critical to finding out what happened to something in a decentralised communication system. It's 2024. Vanishing into space without any trace is not an option.
Most everybody uses followers, following and outbox in some form. We also use them for Access Lists (aka circles/aspects) and photo albums and search results. I'll probably use them for event calendars soon. And of course as mentioned we use them for conversations so that everybody sees the same view of the discussion. It's a very under-utilised organisational mechanism and that seems odd. They're quite useful.

Everybody has lists of all kinds of things on their server, but turning them into collections means you can share them.

@mikedev@fediversity.site said in Part of my frustration with #ActivityPub and one of the things I find baffling giving everything else in it: the lack of tools for backpressure.:

And of course as mentioned we use them for conversations so that everybody sees the same view of the discussion. It's a very under-utilised organisational mechanism and that seems odd. They're quite useful.

Ah yes, that was what I was referring to, a collection for a conversation. It certainly does seem under-utilised but I wasn't entirely sure whether that was true or not.

Are you aware of any other implementors that expose a collection for a collection of a topic's content?

NodeBB Community · Part of my frustration with #ActivityPub and one of the things I find baffling giving everything else in it: the lack of tools for backpressure.Most everybody uses followers, following and outbox in some form. We also use them for Access Lists (aka circles/aspects) and photo albums and search results...
"Are you aware of any other implementors that expose a collection for a collection of a topic's content?"


Not currently.

I'm not sure if this is what @julian asks about, but this would be an example of what I meant in the post mentioned by @jenniferplusplus:

federated.id/objects/2e6cf5a8-

You can see the list of replies fully (the public ones at least), and some of them have inReplyTo attributes that reference multiple objects. This is done to have a way to reconstitute the reply tree structure.

@mikedev

That's fine for what you're doing, but we don't have a reply 'tree'. We have a conversation which is an object owned by its creator. They add and remove activities from it. If it wasn't added to the conversation collection, it's not part of the official conversation and supporting applications will ignore it. In this way we co-exist with microblogs, but we can do lots of things that they can't. Like hold a coherent conversation with a defined audience, and support circles/aspects and private groups, and have comment controls. And we can relay things without third party permission artifacts. And we aren't wasting time talking to people that never see us and don't even know we're in the conversation. it's actually a pretty clever construct.

@mikedev I wasn't following the larger discussion thread, I don't really know what you guys are talking about. I only meant my reply as a clarification to the quote Jennifer++ posted.

No worries. This is a microblog conversation, which means it's not a single conversation but  a bunch of different people broadcasting to different audiences and everybody sees a different conversation tree. So it's easy to lose track of who's talking to  whom and about what and that's pretty much exactly what I've been addressing.

@mariusor@metalhead.club Thanks for sharing this use-case, it's very helpful and quite novel, I might add!

An inReplyTo array addresses the problem of backfill/ghost-replies with a bottom-up approach, vs a context collection which would be a top-down approach... though depending on what direction your tree grows, perhaps it's the other way around

A context collection would also provides the entire tree, which depending on size may or may not be preferred. Tradeoffs...

I think perhaps there is space for both, although I will admit that if my code encountered an Array in inReplyTo it might just terminate because it expects a single uri.

re: the original ask, specifically I was asking whether any other implementors specify context in an as:Note, resolvable to a Collection.

cc @jenniferplusplus@hachyderm.io

> ...if my code encountered an Array in inReplyTo it might just terminate because it expects a single uri

@julian sadly that's the case for most fediverse software at the moment. :(

@jenniferplusplus

@jenniferplusplus@hachyderm.io said:

Letterbook will. I'm flexible as to how, but my current plan is to duplicate the OP's replies collection into the context.

Good to know, I'll add your potential implementation into the table I'm creating... at present I'd want to know the current or potential usages of context. Hopefully there won't be too many disparate and incompatible implementations to reckon with...