Enter the Matrix: Communications Reloaded

Hubert Chathi

KWLUG — November 4, 2019

Communications protocol

  • federated (like email)
    • users connect to their server ("homeserver")
    • servers communicate with each other
  • real-time
  • persisted history
  • JSON data over HTTP (as a baseline)

Decentralized

  • federated (like email)
  • users connect to their server ("homeserver")
  • servers communicate with each other
  • Matrix IDs look like @user:example.com
  • rooms are shared between servers that have users in them
    • if any server goes down (even the one that created the room), everyone else can still talk

Open standard

  • use whatever client you want
    • Riot, Nheko, Quaternion, Spectral, Fractal, weechat plugin, Miitrix, bashtrix
  • write bots in (almost) any language
  • contribute to the spec
  • features appear slower than centralized services, but more freedom

Bridges to other networks

  • IRC, XMPP, Gitter, Slack, Hangouts, Discord, Telegram
  • How the bridge works depends on what the other network allows
  • https://matrix.org/bridges

End to end encryption

  • uses Signal's Double Ratchet, plus another layer to make it more efficient
  • audited by the NCC Group
  • not many clients support it, but can use a proxy

Can be self-hosted

  • homeserver: synapse
    • .deb packages
    • docker, Kubernetes
    • ansible playbook
    • needs a lot of memory/disk if you join large rooms, but needs less for small groups
    • use PostgreSQL for any production deployment (SQLite is only for testing)
  • identity server (ma1sd)
  • integration manager (dimension)
  • bridges
  • bots

The future of Matrix

  • communities done right
  • portable accounts
  • easier end-to-end encryption, and enabling it by default

Join the Matrix Revolution