stop doing activitypub, facts and logic were not meant to have side effects, they have played us for absolute fools .png
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
shitpost of course but i am once again thinking about the muddiness of treating activities as commands or as remote procedure calls, instead of treating them as purely notifications. i mean really they're just a series of statements. bit weird to go attach behaviors to them. it's the kind of thing that makes me make jokes about the activitypub vm or programming language
-
dmitri@social.coopreplied to trwnh@mastodon.social last edited by
@trwnh one, LOL true. But also.. I dont know if it's that muddy. Distributed event logs is a really common pattern for federated or p2p distributed systems. Like.. would you rather it was direct RPC calls?
-
trwnh@mastodon.socialreplied to dmitri@social.coop last edited by
@dmitri no, i'd rather we were explicit about defining an actual "protocol" such that i can tell ahead-of-time if the actor i'm sending an activity to is going to do anything with that activity. basically, are they going to interpret my notification as a command? that's kind of important to know!
-
dmitri@social.coopreplied to trwnh@mastodon.social last edited by
@trwnh I see. Sounds reasonable (and doable).
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
@dmitri like, look at Create Note. if i want that to just be a notification, i'm going to be very upset when someone takes that as a command to Create an identical Note in their database.
Taking it one step further: if Nextcloud generated a Create Document, and sent it as a notification, then some other system saw that as a command to Create the same Document... see how messy it gets?
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
@dmitri throw in some state desync (blocks, failed deliveries, silent actions, etc.) and you're going to have some real "fun" dealing with that mess.
-
smallcircles@social.coopreplied to dmitri@social.coop last edited by
When you mention distributed event logs, then to me that implies event-driven architecture (EDA). You will have some message-based protocol.
An event is "something that happened" triggered by my business logic. Possibly triggering side-effects elsewhere.
Not reasonable, in an #EDA at least, is that an event emitter knows anything at all about who are its consumers. Sending commands is the opposite of emitting events / sending event notifications (msgs).
-
trwnh@mastodon.socialreplied to smallcircles@social.coop last edited by
@smallcircles @dmitri this is part of it but the part i’m concerned about is knowing whether any given actor participates in this kind of system at all, *before* i accept or reject the follow. maybe i consent to my activity being shown as a notification message in someone’s inbox, but not to having it processed or persisted in the state machine of some distributed network.
-
smallcircles@social.coopreplied to trwnh@mastodon.social last edited by
-
trwnh@mastodon.socialreplied to smallcircles@social.coop last edited by
@smallcircles @dmitri step 1 would be actually defining such a protocol. step 2 would be to declare that you are following that protocol.
one thing i’m kind of interested in is the ability to establish a communication channel directly between clients. presumably then i could be picky about which clients i connect to. xmpp lets you do this, and you can address individual clients instead of an entire account. i imagine this would be necessary for e2ee work as well?
-
smallcircles@social.coopreplied to trwnh@mastodon.social last edited by
Now that you mention #XMPP.. at the time that https://openengiadina.net dropped #ActivityPub support for XMPP I was tempted to follow along. So many things are better documented in that open standard and the subsequent XEP's.
Yet also both XMPP and #Matrix are first and foremost instant messaging / chat protocols, and to me using them to build other abstractions on top of felt forced, plus being among the first and only ones to do so.
-
trwnh@mastodon.socialreplied to smallcircles@social.coop last edited by
@smallcircles @dmitri not entirely im/chat, because xmpp stanzas can carry anything and matrix events were designed to be a state synchronization protocol. it’s just a particularity of those ecosystems that the majority of clients are messengers. xmpp though treats messaging as part of its “core” functionality (along with presence and information queries)
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
@smallcircles @dmitri you can use xmpp for sending pretty much whatever you want over bidirectional channels or streams. kind of like how in http land there are server-sent events. or websockets.
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
@smallcircles @dmitri honestly a lot of the time i think about how this stuff is already “done” in xmpp land and i wonder why we’re reinventing it poorly and in json
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
@smallcircles @dmitri do people really hate xml that much? it really seems like it
-
trwnh@mastodon.socialreplied to trwnh@mastodon.social last edited by
@smallcircles @dmitri i’ve legit thought before about just taking xmpp semantics and porting them 1:1 to activitypub
-
bengo@mastodon.socialreplied to trwnh@mastodon.social last edited by
@trwnh @dmitri https://w3c-ccg.github.io/zcap-spec/#invocation
notification : capability :: command : invocation
-
aslakr@mastodon.socialreplied to trwnh@mastodon.social last edited by aslakr@mastodon.social
@trwnh @smallcircles @dmitri Why do you all hate MIME, as in the message format, and the internet message format (rfc822 with updates) so much?