Hacker News new | ask | show | jobs
by Arathorn 524 days ago
Nope, it's not self-sabotage - the worker is sitting there consuming the events from redis, and then pulling in the dependent data from the DB and populating and maintaining its caches (and marshalling & unmarshalling the necessary data) so that it can actually do work on the events as needed.

Obviously one could certainly optimise it more... which is why we did, by rewriting it in Rust, and adding in smarter pubsub, etc.

However, the key thing is that for anything other than huge deployments, this isn't a bottleneck. But for huge deployments, it becomes one. Meanwhile, we're hoping to use $ from Synapse Pro to fund perf improvements for normal FOSS Synapse and Matrix - e.g. algorithmically improving state resolution to be more performant; finishing faster room joins; improving federation traffic routing etc... so that smaller deployments get faster anyway without needing the faster workers.