travisr,

I'm very excited to be presenting at FOSDEM in February! I've been working on messaging interoperability for about 2 years now with much of that focus being on developing an open standard for that exact purpose. We'll be exploring how #Matrix works as an existing decentralized open standard for interoperable communications, and how other protocol development work interacts with Matrix.

Join me for a technical look at #MIMI, #DMA, and the Matrix protocol: https://fosdem.org/2024/schedule/event/fosdem-2024-3157-interoperability-matrix/

clacke,

@travisr Cool! I only heard of MIMI for the first time this week. Looking forward to your talk, it sounds interesting!

I bet some of the first questions that pop into people's minds are:

  1. How is MIMI not yet another XMPP
  2. How is MIMI not yet another Matrix
  3. In general, how does this not suffer from #xkcd927

Have you or someone else already given a talk or written a blogpost that addresses those concerns? I'd like to get a head start until February. =)

didek,
@didek@101010.pl avatar

@clacke @travisr

MIMI is not a protocol, but rather something like a working group to discuss what protocol to focus on :).

"More Internet Messaging Interoperability" it stands for

travisr,
smallcircles,
@smallcircles@social.coop avatar

@travisr @didek @clacke

I'm no expert on IM at all, but when looking at IM protocol specs and seeing a key role for a Room at protocol level, I always wonder whether that isn't overly limiting the versatility of the protocol. In Matrix you see apps where richer social networking use cases are being modeled, but deep down everything should be rooms. But idk enough, maybe that's no issue at all.

didek,
@didek@101010.pl avatar

@smallcircles @travisr @clacke

Room is not only a chat room, it's just a name for a "container" of some data, I think.
In Matrix rooms have chronological events, non-chronological states and members with permissions. This can also be group for posting, game lobby or user profile with interactions, basically anything.

smallcircles,
@smallcircles@social.coop avatar

@didek @travisr @clacke

Yes, thank you. I should have a closer look at specific msg formats on how that's expressed. I was more of a mindset of "call a duck a duck", not a "room, type=duck" but it may boil down to not matter much, idk :)

travisr,

@smallcircles @didek @clacke MIMI's content format is still very much a WIP, and is fully intended to be focused on messaging.

Matrix however just calls everything an "event". Even within a messaging-focused room there are events that users don't see, like the events to set up VoIP calls or ensure threads work.

Critically, Matrix lets you define your own event types and use them - nothing will break from doing that. Matrix is essentially a distributed JSON database in this respect.

smallcircles,
@smallcircles@social.coop avatar

@travisr @didek @clacke

Yes, I like that event extensibility. I am just wondering about that Room abstraction. But my musing on whether this abstraction is too leaky is just gut feeling, as I am not that well-informed.

Just quickly skimmed #Commune by @erlend and e.g. it looks like a Space is also a room, and a space subsequently has rooms.. https://github.com/commune-os/commune-server/blob/main/app/space.go

#PubHubs has Hubs which have rooms, and which aren't currently federated, but I suspect they'll become rooms in the msgs too.

smallcircles,
@smallcircles@social.coop avatar

@travisr @didek @clacke @erlend

XMPP otoh doesn't have rooms, and msg formats can be way more freely defined, looks like (also re-skimming just now).

smallcircles,
@smallcircles@social.coop avatar

@travisr @didek @clacke @erlend

It may also be that my thought pattern is entirely irrational, and that just the notion of being in an enclosed room somehow restricts my mind. And that with a rename to "universe" would cause my mind to then explode 😅

travisr,

@smallcircles @didek @clacke @erlend sure :D

We needed a place to put users, so picked "room". Users send events and can set aliases on the room so others can join more easily. Aliases act as doors, to continue the analogy.

Sometimes it can be useful to think of rooms as a routing tag for an event. Each room has an ID and subscribers (members) interested in that topic - sending an event with that room ID routes the object to them equally :)

travisr,

@smallcircles @didek @clacke @erlend XMPP is very similar to Matrix. Matrix's "room" concept is nothing more than a name - it just holds events. Currently those events are JSON objects with a freeform type to give them meaning.

We also specify a number of events which are applicable to certain situations, like messaging, but it's possible to build your own too.

There's a bit more detail here: https://github.com/matrix-org/matrix-spec/issues/416

smallcircles,
@smallcircles@social.coop avatar

@travisr @didek @clacke @erlend

Thanks for that info!

travisr,

@didek @smallcircles @clacke this^. MIMI is highly focused on messaging, so it picks a term like "room" to best describe the container. It may in theory be able to transmit more than messages, but it's not the purpose.

Matrix is very much meant to be a generic communications layer. It happens to be that messaging works really well here, but it's not the only focus. We use "room" mostly because no one has decided to rename it following the early proof of concept demos :p

  • All
  • Subscribed
  • Moderated
  • Favorites
  • Matrix
  • cisconetworking
  • rosin
  • mdbf
  • magazineikmin
  • ngwrru68w68
  • DreamBathrooms
  • InstantRegret
  • thenastyranch
  • Youngstown
  • ethstaker
  • slotface
  • everett
  • kavyap
  • Durango
  • megavids
  • tacticalgear
  • osvaldo12
  • modclub
  • khanakhh
  • cubers
  • GTA5RPClips
  • normalnudes
  • anitta
  • provamag3
  • tester
  • Leos
  • JUstTest
  • lostlight
  • All magazines