Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There's a lot of stale/wrong info here. I'd say that we have pretty healthy competition in homeserver implementation these days. The four options currently in active development are Synapse (Python), Dendrite (Go), Conduit (Rust) and Construct (C++).

In terms of Synapse (https://github.com/matrix-org/synapse): originally the initial prototype for Matrix, historically it had performance and architectural issues given we were frantically implementing features to prove Matrix rather focusing on perf. Since hitting 1.0 a year ago though things have improved massively. Almost all of Synapse scales horizontally; we've switched to Python 3 and have almost finished switching to asyncio (improving perf and maintenance massively); and lots of schema perf issues have been shaken out. Unsure what you're thinking about w.r.t. "restart its synchrotrons", but that just sounds like a bug that got shaken out years ago.

Dendrite (https://github.com/matrix-org/dendrite), meanwhile, is in very active dev by the core Matrix team - there was a long hiatus while we had to focus exclusively on Synapse, but since the beginning of this year there are folks working fulltime on it, and it's looking super promising as a very microservices-driven model, with each service scaling arbitrarily horizontally, connected via append-only logs. All the P2P Matrix work is built on it (running it clientside, as it's such small footprint). It's effectively in competition with Synapse, and worked on by different teams. It federates today and can be run as late alpha, but the CS API is missing some features that we're currently adding.

Conduit (https://conduit.rs) is the new kid on the block, written by the community in Rust, using a strictly monolithic structure for now, using Sled as a key value store for storage. It's incredibly fast, and has impressively good CS API coverage (including E2EE, whereas Dendrite's E2EE support is only landing this week), but federation work hasn't begun yet (which is a bit worrying, as you need to design/build with federation in mind from square 1). It has a great community though, and is entirely independent of the core Matrix team, and you could say it's in competition with Dendrite.

Construct (https://github.com/matrix-construct/construct) is a C++ server using rocksdb for storage. It's a community project entirely independent of the core Matrix team; it federates, and has extensive CS API coverage, but unfortunately the project's author has been incredibly antagonistic to the core Matrix team over the years, which makes it rather hard for us to comment further.

TL;DR: Matrix homeserver dev is in a good place right now :)



Thank you for the update.

I was going on public information, such as the FAQ about Synapse, which explained in detail how matrix.org could not shard out their Synapse server; it is good that the FAQ is now completely wrong on that. I will need to ask over at Construct about the nature of their disagreement with the core team.

I had asked at Element why it would not update notification preferences, and they said my homeserver probably needed its synchrotrons restarted. Does this mean the version of Synapse they run is badly outdated?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: