| It looks like i've done a bad job at explaining this, so i'll try to clarify: Making worker processes go fast has most benefit to enormous deployments, as they won't run out of headroom when running lots of single-core python workers. However, ALL deployment sizes benefit from algorithmic improvements to the protocol and its implementation - which are the cause of smaller servers being slower today. Specifically: * Merge conflict resolution (State resolution) is worse than O(N) complexity with the amount of state to be merged. * Incremental room joins (https://element-hq.github.io/synapse/latest/development/syna...) were never fully finished. * Servers burn lots of time trying to talk to dead servers: https://github.com/matrix-org/matrix-spec-proposals/pull/413... * All Matrix traffic currently runs full-mesh - there's no concept of "thin nodes" or delegating fan-out to a larger server. So, fixing these issues is all going into open source Synapse (and Matrix as a whole) - which should unrecognisably improve performance, whether servers are written in Python or Rust or Elixir or whatever. And the hope is that $ from Synapse Pro funds that work (assuming the gambit is successful). Meanwhile, all features, security work, perf optimisations (apart from scalability work), experimental MSCs etc will continue to land in FOSS Synapse for the forseeable. |