Thanks for taking the time to break your thoughts and response down clearly @Aljoscha. It's also really good to be reminded that I'm in my mother tongue, and that you also have other balances in your life which are important, thanks for those
Here's a few reflections and responses on what you've said:
I'm somewhat inclined to dismiss every argument of kind "message type xyz benefits from timestamps, therefore timestamps should be mandatory"
We're on the same page. I wasn't suggesting mandatory timestamps just cos posts might benefit from having them.
I think if you remove timestamp you might have to make branch compulsory.
I think branch is actually way more interesting that timestamp.
I suppose you are talking about post messages here?
No, there are a range of message types which need causal sorting - e.g. when edits happened on a gathering, or different responses to a poll came in. Different sorting creates a very different meaning. Without a branch
property (and assuming we remove timestamp), it gets very hard to arange things causally.
I guess this could be optional, but if we agree causal sorting is a good thing to be able to do I'm nervous about making many of the ways you might do that be optional (e.g. by having no requirment for timestamp nor branch anywhere)
Causal order to the rescue again. Pick an arbitrary message which you trust to be from the correct point in time (e.g. a year ago), query for all tags which are higher up in the causal order.
I like your distinction about the protocol level versus the client level, that's helped me reframe this conversatin more. I can't currently imagine how to make a way to write causal queries on the server. I'd have to think about it... at the moment it would have to be an index, and because we don't know when different messages arrive ... hmmm. A tricky problem.
I think there are two possible futures:
- people mull on that problem and try to find a solution which is performant
- we don't find a performant way to do causal queries, which <opinion>forces use to defer removing timstamps / branch</opinion>