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이라는 점이다.