This is super cool to know! I was just looking for a more scalable way to implement real-time communication for a hobby project https://lo.fish, an event space creation platform similiar to gather.town and sococo. (Right now the plan is to turn it into partially a Matrix client && open-source a community version of it in the end of this month!)
Before stumbling upon Dendrite I was thinking about reimplmenting the backend in Elixir.
I have some exposure in both Go and Elixir. So am quite curious what are the list of things the Matrix team had gone through before deciding to re-write Matrix in Go instead of Elixir. Hmm perhaps one of the main reason was that Go has a much bigger ecosystem than Elixir? I always had the impression that writing a decentralised system in Elixir would be more straight-forward. Or perchance there are other more pragmatical aspects of things to consider?
(I'm compeletly new to this so any thoughts on it will be appreciated!)
I'm much more excited at this point by conduit, dendrite is cool, but the goal of federation should be easy to install, easy to run, cheap to run. Requiring kafka isn't cheap or easy.
Matrix is an open network like Email or the Web. So if you use a "free" server, it means you've selected a public server like matrix.org or privacytools.io or whoever. These servers are hosted philanthropically for the benefit of the overall network (e.g. Matrix.org's hosting is paid for via Patreon: http://patreon.com/matrixdotorg).
If enough organisations run their own servers and make them available to their users for free, then you could indeed support the online billions. Instead, much like email, we already see a mix of free services (the equivalent of hotmail, gmail etc) and paid services (the equivalent of g-suite, protonmail, etc).
I have high hopes Matrix can disrupt all the chat silos out there.