매트릭스 재단이 2026년 8월 14일 주간 소식에서 Synapse v1.159.0rc1 릴리스 후보를 공개했다고 밝혔다. 가장 눈에 띄는 변경은 MSC4429, 줄여서 레거시 동기화용 프로필 업데이트 지원이다. 여기서 레거시 동기화란 지금까지 매트릭스 클라이언트가 쓰던 /sync 방식이다. 이름 그대로 옛날 방식의 /sync에 사용자 프로필 업데이트를 실어 보내는 기능인데, 기본값은 비활성이고 include_profile_updates_in_sync 설정으로 켠다. Element Web 야간 빌드에서는 개발자 모드 아래 ‘User Status’ 랩스 플래그로 실험할 수 있고, /status <emoji> <text> 같은 명령도 붙는다고 한다. 이 작업은 앞으로 Sliding Sync 지원과 연합 전파까지 이어질 예정이라니, 단순 릴리스 후보 이상으로 읽힌다. 출처는 Matrix 블로그의 이번 주 소식이다.
매트릭스는 여러 서버가 서로 연결되는 연합(federation) 구조의 분산 채팅이다. 그런데 클라이언트가 서버에서 최신 상태를 받는 동기화 경로는 사실상 집중형이다. 집중형이 아니어도, 모든 참여자가 같은 방 상태에서 뭘 빠뜨렸는지 계속 맞춰야 한다는 점은 P2P와 같다. MSC4429가 레거시 sync에 프로필 업데이트를 얹는 건, 수많은 기존 클라이언트가 아직 옛 동기화 API에 붙어 있기 때문이다. 새로운 Sliding Sync로만 가면 낡은 구현들이 버려질 수 있지만, 실제 메신저 생태계는 점진적 전환을 강요받는다. 우리 PonsLink도 초기 MVP에서 동기화 경로를 잘못 고르면 나중에 바꾸기 어렵다는 걸 뼈저리게 배웠다. 프로토콜 세대교체는 기술 설계보다 채택 곡선의 문제라는 뜻이다.
이번 릴리스 후보에는 워커 복제(worker replication) 수정 몇 건과, PostgreSQL 연결에 idle_in_transaction_session_timeout 30분을 새로 적용하는 변경이 있다. 한 줄로 보면 트랜잭션을 연 채 놓아둔 연결이 락을 잡고 vacuum을 막는 사고를 차단하는 거다. 분산 시스템에서 단일 홈서버의 DB 세션 누수는 곧 연합 전체로 퍼지는 지연이 된다. 매트릭스 홈서버가 처리해야 하는 상태는 방 이벤트, 프로필, 출력 큐로 나뉘는데, 어느 하나라도 정합성을 놓치면 다른 서버와의 프로토콜 대화가 어긋난다. 그래서 워커 복제 수정과 DB 타임아웃은 메타 관심사처럼 보여도 실시간 네트워크의 뼈대다. 실제로 분산 시스템 운영에서 가장 위험한 건 ‘조용히 죽는’ 상태이지, 명시적으로 터지는 에러가 아니다.
다음 변곡점은 두 가지다. 하나는 MSC4429가 언제 기본값 비활성에서 활성으로 바뀌느냐다. 프로필 업데이트를 레거시 동기화에 포함하는 일은 사용자 경험에서는 조용하지만, 프로토콜 호환성에서는 민감한 변화다. 다른 하나는 Matrix v1.16 스펙 준수 수정이 이어지면서 기본 방 버전(room version)을 12로 바꿔 갈 준비가 갖춰지는 일이다. Famedly의 Jason Little이 커밋을 계속 던지고 있다고 하니, 연합 환경에서 버전 핀을 올릴 때 생기는 긴 꼬리를 지켜보면 재미있다. 관점을 좁혀 말하면, 매트릭스는 여전히 ‘동기화 API 세대 전환’이라는 P2P 숙제를 푸는 중이다. 우리는 그 숙제가 언제 마무리되느냐보다, 회귀 경로(regression path)를 어떻게 관리하느냐에 더 관심이 간다.
동기화는 P2P의 영원한 숙제다: 매트릭스 Synapse 1.159 해설
매트릭스가 Synapse 1.159.0rc1을 내놓았다. MSC4429 레거시 동기화 프로필 업데이트와 PostgreSQL 잠금 타임아웃 조정은 분산 실시간 네트워크가 오래된 길(legacy path)을 놓지 못하는 이유를 다시 보여준다. P2P 입장에서 동기화와 상태 전파를 읽는다.
댓글