brief.ing.gg

WIKI

Matrix

Matrix

분산형 실시간 메시징 프로토콜은 기존 중앙형 메신저와 무엇이 다른가.

Scope

핵심 질문

Matrix는 중앙형 메신저와 달리 서버 간 federation을 이용해 실시간 통신을 어떻게 구성하는가?

Research

핵심 근거

  • Matrix는 open APIs for decentralized communication을 정의한다.
  • Client-Server API와 Server-Server API를 분리하며 room event를 homeserver들이 federation한다.
  • 사용자는 특정 homeserver에 계정을 두지만 다른 서버 사용자와 같은 room에서 통신할 수 있다.

참고 자료

  • https://spec.matrix.org/

Draft

Matrix는 하나의 회사가 모든 계정과 메시지를 운영하는 서비스가 아니라 여러 homeserver가 서로 통신할 수 있도록 정의된 개방형 실시간 통신 protocol이다.

Homeserver

사용자는 하나의 homeserver에 계정을 만든다. Client는 Client-Server API로 자신의 서버와 통신한다.

Federation

서로 다른 homeserver 사용자가 같은 room에 참여하면 server들은 Server-Server API를 통해 event를 교환한다. 이메일처럼 사용자가 서로 다른 provider를 사용해도 통신할 수 있다는 아이디어와 비슷하다.

Room과 Event

Matrix의 대화 상태는 room 안의 event graph로 표현된다. 메시지뿐 아니라 membership, room name, encryption 관련 상태도 event로 관리된다.

Self-host

자체 homeserver를 운영하면 계정과 서버 정책을 직접 통제할 수 있다. 대신 federation, storage, push, spam 방어와 upgrade를 운영해야 한다.

핵심

Matrix의 핵심 차별점은 특정 client 앱이 아니라 개방형 federation protocol이라는 점이다.