top | item 42738306

(no title)

traspler | 1 year ago

So there is the Synapse version that is required to get the big money contracts and the Synapse that is pretty inconsequential to the business except as a testing playground. - Makes it difficult to see how "Element is fully committed to community Synapse" can be true in the long run. Does this not spread the development effort & focus even thinner across these projects? And would reduced memory & cpu requirements not benefit all deployment sizes and not just nation-scale ones? It feels very much as a pivot towards a closed stack.

discuss

order

Arathorn|1 year ago

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.

traspler|1 year ago

After re-reading and reading many other comments in various posts I think I have misunderstood it partly. So the workers part has been overhauled in Rust for Synapse Pro. Is this a complete re-implementation of Synapse so the big deployments with Synapse Pro will not run anything from the normal Synapse or is this only part of the whole stack and the Pro deployments will also run most of the normal Synapse?

jdenning|1 year ago

But it seems like this move incentivizes you to not improve the open source server, at least such that the open source server is always inferior to the pro version.

If someone makes a new, more performant, open-source server, and it touches your bottom line then you're strongly motivated to "embrace, extend, extinguish".

The thing is, we've all heard this before, and it always ends up the same. I hope you prove me wrong, but I wouldn't bet on it.