You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, when an application service (appservice) creates an event, if the appservice is also "interested", we also send that event back out to the appservice (echo). This echo is normally ignored by bridge libraries like with the suppressEcho option in matrix-appservice-bridge. But there is significant overhead when it comes to ignoring all of those transactions on the client and even Synapse itself can get backed up with events it doesn't even necessarily need to send out. Instead of having the round-trip just to ignore, we can ignore directly in Synapse to not send it out via the appservice.
We were seeing this problem in real-life with the Gitter -> Matrix import process and made a quick patch to get around this problem. @turt2live also shared a similar t2bot.io patch that they've been running for a long-time: t2bot/synapse@3c1cd9a
Potential solution
There should be a way to ignore events that are created by an appservice to not go back out the appservice that sent it. Or ideally, this behavior should be a sane default. This probably requires a MSC to define the behavior in the AS registration config.
@Half-Shot shared MSC2487 which is related but goes beyond the scope that I care about and given the extra complexity, extra bikeshedding will ensue. Probably best to create a new MSC.
Potential alternatives
One alternative in the Gitter -> Matrix import scenario is to have something like matrix-org/synapse#3237 which ignores any old events which would work perfectly fine since we're only importing old messages. And on the Gitter side of the bridge, we already ignore any events older than 30 minutes anyway so a solution to that separate issue makes sense in any case. But we should also handle the case for new/any events which this issue addresses.
The text was updated successfully, but these errors were encountered:
This issue has been migrated from #14776.
Spawning from the PoC in matrix-org/synapse#14729
Problem
Currently, when an application service (appservice) creates an event, if the appservice is also "interested", we also send that event back out to the appservice (echo). This echo is normally ignored by bridge libraries like with the
suppressEcho
option inmatrix-appservice-bridge
. But there is significant overhead when it comes to ignoring all of those transactions on the client and even Synapse itself can get backed up with events it doesn't even necessarily need to send out. Instead of having the round-trip just to ignore, we can ignore directly in Synapse to not send it out via the appservice.We were seeing this problem in real-life with the Gitter -> Matrix import process and made a quick patch to get around this problem. @turt2live also shared a similar t2bot.io patch that they've been running for a long-time: t2bot/synapse@3c1cd9a
Potential solution
There should be a way to ignore events that are created by an appservice to not go back out the appservice that sent it. Or ideally, this behavior should be a sane default. This probably requires a MSC to define the behavior in the AS registration config.
@Half-Shot shared MSC2487 which is related but goes beyond the scope that I care about and given the extra complexity, extra bikeshedding will ensue. Probably best to create a new MSC.
Potential alternatives
One alternative in the Gitter -> Matrix import scenario is to have something like matrix-org/synapse#3237 which ignores any old events which would work perfectly fine since we're only importing old messages. And on the Gitter side of the bridge, we already ignore any events older than 30 minutes anyway so a solution to that separate issue makes sense in any case. But we should also handle the case for new/any events which this issue addresses.
The text was updated successfully, but these errors were encountered: