Skip to content

Support for Reactions / Aggregations #441

Closed
@matrixbot

Description

@matrixbot

Documentation: https://docs.google.com/document/d/1CnNbYSSea0KcyhEI6-rB8R8u6DCZyZv-Pv4hhoXJHSE/edit
Author: @pik
Shepherd: @ara4n
Date: 25/12/2016
See also: matrix-org/synapse#1633

Currently we have no good way to model 'voting' metadata about messages (e.g. FB likes or Reddit/Slashcode up/downvotes). The best we can do is to synchronise around 'update' messages in the v2 CS-API - this could get very noisy and heavyweight for a typical FB-style "1M likes!" scenario.

We could help mitigate this by coalescing certain updates into the original event - both for server->client and server->server synchronisation. However, this can never work in an E2E crypto world (unless we don't encrypt the vote, which doesn't seem great). Worth noting that an E2E room with lots of participants becomes increasingly insecure to the point that it might as well not be E2E, as the room is only as safe as the security of the clients connected to it, so we might be able to sidestep this in practice somehow. Alternatively, we could try to fix the scalability implications of syncing all these 'like' events by somehow QoSing them: federating them at lower priority; having them semi-ephemeral and parented only to the event they describe to avoid disrupting the main message graph; putting them in a separate message graph; etc.

In a non-e2e world, we could coalesce... I believe having a HS say "150 users Liked this message" is no more open to abuse than trusting a HS to accurately report /any/ message from its users. But then we need a mechanism to de-coalesce on demand (e.g. to actually start paginating through the list of 1M users who hit 'Like').

(Imported from https://matrix.org/jira/browse/SPEC-135)

(Reported by @ara4n)

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureSuggestion for a significant extension which needs considerable considerationkind:coreMSC which is critical to the protocol's successobsoleteA proposal which has been overtaken by other proposalsproposalA matrix spec change proposal

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions