- Sau 5 năm sử dụng Matrix.org và Element làm nền tảng liên lạc chính, tác giả đã trải qua nhiều vấn đề và thất vọng, và quyết định không dùng nữa
- Đi đến kết luận rằng rất khó khuyến nghị cho người dùng hằng ngày do hiệu năng chậm, dịch vụ thiếu ổn định, UX gây rối
- Đánh giá rằng sức khỏe của hệ sinh thái đang xấu đi vì thiếu định hướng phát triển, các dự án client và server bị phân mảnh, cùng nhiều tính năng cốt lõi còn dang dở
- Sự cố cuối cùng là kênh cộng đồng do chính tác giả vận hành gần như bị hỏng hoàn toàn do vấn đề của homeserver Matrix.org
- Cuối cùng tác giả quyết định quay lại XMPP; dù đánh giá cao lý tưởng về giao thức mở và cấu trúc liên bang của Matrix.org/Element, tác giả cho rằng ở trạng thái hiện tại nó không phù hợp để sử dụng thực tế
Tl;dr và phần mở đầu
- Tác giả đã dùng và quảng bá Matrix.org cùng Element trong 5 năm, đồng thời trải qua nhiều vấn đề và giới hạn
- Dù có lý tưởng giao thức mở hấp dẫn và đà tăng trưởng như được các cơ quan châu Âu triển khai, trải nghiệm người dùng thực tế lại chậm và thiếu độ tin cậy
- Tác giả cảm thấy hoài nghi về tương lai của dịch vụ do sự rối loạn trong định hướng phát triển, tình trạng phân mảnh dự án và UX còn thiếu sót
- Gần đây, do sự cố homeserver khiến cả kênh cộng đồng cũng biến mất, tác giả quyết định quay lại XMPP
Những ngày đầu
- Matrix.org khởi đầu cách đây 10 năm như một giao thức nhắn tin liên bang, với mục tiêu rõ ràng là chuẩn hóa giao tiếp thời gian thực giữa các nhà cung cấp, tương tự SMTP của email
- Về mặt kỹ thuật, nó tương tự XMPP nhưng khác biệt ở nhắn tin dựa trên JSON, WebRTC, mã hóa đầu cuối (E2EE) tích hợp sẵn mặc định )
- Dự án được phát triển với sự hỗ trợ của một công ty con thuộc Amdocs (2014~2017), sau đó được New Vector Limited tiếp quản
- Nhiều tổ chức và công ty như KDE, Purism, Status, chính phủ Pháp đã tham gia, nhưng Synapse (homeserver chính thức) được thiết kế với một stack công nghệ về cấu trúc không phù hợp cho khả năng mở rộng dài hạn
- Các dự án server thay thế như Dendrite, Conduit xuất hiện do cộng đồng thúc đẩy, nhưng chất lượng của các thành phần cốt lõi vẫn còn thấp
Hãy dùng Matrix!
- Hệ sinh thái tăng trưởng từ mốc Mozilla công bố áp dụng Matrix vào năm 2019, và Element (trước đây là Riot) trở thành client chủ lực
- Các cơ quan chính phủ châu Âu như Tchap của Pháp, quốc phòng và y tế Đức, Luxembourg, Thụy Điển cũng lần lượt triển khai
- Các sản phẩm mới như Element X native, SchildiChat, FUTO Circles cũng xuất hiện nhằm vượt qua giới hạn của ứng dụng Element dựa trên Electron
- Trong bầu không khí kỳ vọng đó, tác giả đã nỗ lực thúc đẩy hệ sinh thái Matrix bằng cách vận hành kênh cộng đồng, thuyết phục bạn bè, nhưng các vấn đề gốc rễ của dịch vụ vẫn không được giải quyết
Tua nhanh
- Sau 5 năm, mọi kỳ vọng và sự kiên nhẫn với Matrix và Element đã chạm đáy
- Dù gần đây có các thay đổi như đưa vào MAS (Matrix Authentication Service), các vấn đề như thiếu tính năng bảo mật cơ bản như 2FA/MFA và Element X còn thiếu nhiều tính năng (thread, space, widget, v.v.) vẫn tiếp diễn
- Element X nhanh hơn bản Electron trước đây, nhưng vẫn chậm nếu so với Signal, Telegram X, WhatsApp
- Đặc biệt, tác giả trải nghiệm các vấn đề hiệu năng nghiêm trọng như UI chậm trên thiết bị cũ, tốc độ phản hồi gần như không khác mấy ngay cả trên thiết bị mới, homeserver matrix.org hoạt động chậm, và ngay cả client TUI (iamb) cũng bị trễ hàng chục giây
- Nhiều phương án thay thế khác nhau (như tích hợp với IRC client) cũng không thực tế do không hỗ trợ E2EE và thiếu các tính năng cơ bản
- Việc xác minh chéo thiết bị cho E2EE vốn là vấn đề tồn tại lâu dài vẫn không ổn định cho tới gần đây, còn giao thức, mã hóa và API phức tạp cũng làm giảm khả năng tiếp cận của các nhà phát triển bên thứ ba
- Các server thay thế (Dendrite, Conduit, v.v.) vẫn chưa phù hợp cho vận hành quy mô lớn, còn client FUTO Circles thì dừng vào năm 2025
- Sự phân tán của stack công nghệ (Python, Node.js/TypeScript, Go, Rust, v.v.) và việc thay đổi repository liên tục khiến việc quản lý hệ sinh thái trở nên khó khăn
- Tác giả cũng chỉ ra việc New Vector thiếu một chiến lược kỹ thuật rõ ràng và các vấn đề tài chính kéo dài
Có lẽ là do bạn?
- Tác giả tìm thấy nhiều trải nghiệm tương tự với cùng kiểu bất mãn trên Reddit, blog, forum và nhiều nơi khác
- Rất nhiều phản hồi của người dùng cho rằng “Matrix vốn dĩ đã bất tiện”, và ngay cả trong cộng đồng FOSS, câu ‘Unable to decrypt message’ cũng đã thành trò đùa
- Do hiệu năng suy giảm, spam gia tăng, Element X còn dang dở, web client thiếu ổn định, nền tảng này trở thành lựa chọn khó khuyến nghị
- Các đánh giá tích cực ít hơn rất nhiều so với các vấn đề, chỉ trích và trải nghiệm tiêu cực
- Cách đặt tên gây rối, khó tìm kiếm, và là một môi trường còn khó tiếp cận hơn nữa với người dùng bình thường
Giọt nước tràn ly
- Đầu tháng 7, kênh cộng đồng do tác giả trực tiếp vận hành đột nhiên không thể truy cập; trong Element X thì vẫn còn nhưng trên web client lại hiển thị như đã biến mất
- Dù thử kết nối lại và liên hệ hỗ trợ, vấn đề không được giải quyết; trên homeserver xuất hiện lỗi ‘m.room.create event missing’
- Người dùng khác vẫn truy cập kênh bình thường, nhưng các thao tác thay đổi/cấp quyền lại không hoạt động, qua đó bộc lộ sự phức tạp và mong manh của cấu trúc phân quyền/liên bang
- Đội hỗ trợ không có phản hồi rõ ràng, từ góc nhìn người dùng cũng khó xác định ai là bên chịu trách nhiệm cho sự cố, và cuối cùng việc khôi phục kênh thất bại
Tạm biệt Matrix.org
- Vì đội hỗ trợ không phản hồi và không thể truy cập log server, tác giả quyết định ngừng sử dụng nền tảng Element
- Kênh cộng đồng chỉ có ít người tham gia, nhưng việc mất đi không gian đã tích lũy trong nhiều năm chỉ vì một sự cố đơn thuần vẫn khiến tác giả tiếc nuối
- Do hiệu năng chậm, spam tăng, web client chưa hoàn thiện và Element X còn chưa đầy đủ, nền tảng này không còn có thể được khuyến nghị cho người dùng phổ thông
- Tác giả dự đoán Matrix.org và Element có thể vẫn tồn tại trong một số tổ chức nhất định như các chính phủ châu Âu, nhưng sẽ bị công chúng phổ thông quay lưng vì rào cản gia nhập và độ phức tạp
- Với cấu trúc quyền hạn, địa chỉ và thiết lập quá phức tạp cùng UX còn thiếu, nó chỉ là “một phần mềm doanh nghiệp lý tưởng”
- Tác giả tuyên bố chia tay vì đã kiệt sức trước sự mệt mỏi của người dùng, các vấn đề lặp đi lặp lại và chất lượng hỗ trợ yếu kém
Tương lai và các lựa chọn thay thế
- Tác giả đồng tình với lý tưởng của Matrix như giao thức mở, quyền riêng tư, cấu trúc liên bang và phi tập trung, nhưng cho rằng nó có giới hạn khi là một công cụ dùng thực tế
- Dựa trên trải nghiệm thực tế, XMPP và IRC mang lại độ tin cậy, sự đơn giản và khả năng tương tác tốt hơn nhiều
- Ngay cả Dendrite của Matrix cũng đòi hỏi 2~4 core và 8GB RAM cho sử dụng hằng ngày, khiến chi phí vận hành và quản trị cao
- Trong khi đó, các hệ thống dựa trên Erlang/OTP như Ejabberd có thể hỗ trợ số lượng kết nối đồng thời lớn với ít tài nguyên hơn, và là kiến trúc đã được kiểm chứng suốt 20 năm trong các hệ thống phân tán
- Tác giả lấy làm tiếc rằng trong khi Matrix dùng nhiều công nghệ như Python, Node.js, Go, Rust, thì nếu đơn giản hóa kiến trúc theo hướng Erlang/Elixir, việc vận hành có lẽ đã dễ và rẻ hơn rất nhiều
Khởi đầu mới
- Sau khi thử nhiều dịch vụ mới nổi khác nhau, tác giả cuối cùng quay lại XMPP (và IRC), với điểm mạnh là sự đơn giản, độ tin cậy và khả năng tương tác
- Tác giả kêu gọi các thành viên cộng đồng Matrix.org tham gia kênh XMPP mới (cùng phòng SimpleX)
- Instance XMPP vẫn đang được cải thiện liên tục, và trong tương lai còn có kế hoạch tích hợp Tor, I2P, proxy UnifiedPush, server IRCv3
- SimpleX vẫn tiếp tục được vận hành, nhưng bản thân nó cũng phụ thuộc vào nền tảng vận hành
2 bình luận
Vài năm trước trên GeekNews cũng đã có khá nhiều tin về Matrix, rồi im ắng hẳn, hóa ra đã có những vấn đề như thế này.
Ý kiến trên Hacker News
Tôi cũng đã nêu cùng lập luận này nhiều lần, kể cả trên các máy chủ của Matrix Foundation. Phản ứng chung của đội ngũ thường kiểu như “hoặc trả tiền, hoặc chấp nhận những gì đang có”. Trong vài năm gần đây đã có quá nhiều cuộc đổi hướng quy mô lớn: từ Jitsi sang WebRTC, thay toàn bộ hệ thống xác thực, chuyển hẳn từ Element sang Element X, v.v. Hiện tại có hai lựa chọn: một client nhanh nhưng ít tính năng, và một client chậm nhưng nhiều tính năng, nên chỉ còn cách chọn bỏ bớt tính năng hoặc chấp nhận chậm. Tôi muốn ủng hộ theo hướng tích cực, nhưng theo trải nghiệm của tôi thì đội này quá kiêu ngạo. Thật sự rất khó tìm được một trình nhắn tin dựa trên chuẩn mở dùng được cho doanh nghiệp. XMPP thì phân mảnh và không có client nào gọn gàng. Matrix là một dạng hỗn loạn kiểu BDFL tự cho mình quá thông minh, còn Signal tuy mã nguồn mở nhưng thù địch với self-hosting. Ngoài ra, tôi còn nghi ngờ tổ chức này hoàn toàn do Architecture Astronauts dẫn dắt. Mọi phần đều bị trừu tượng hóa quá mức đến mức mất ý nghĩa
Tôi đã dùng Conversations (di động) và Gajim (desktop) trong 10 năm qua. Chỉ cần cấu hình tối thiểu và chúng hoạt động rất ổn định. Tôi tự hỏi không biết mình đang bỏ sót điều gì
Không biết bạn đã thử Delta Chat chưa. Tôi rất thích ý tưởng này, nhưng tiếc là không thể thuyết phục ai đó cùng test
Tôi nghĩ việc diễn giải phản ứng của đội ngũ thành “hoặc trả tiền hoặc chấp nhận” là hơi cường điệu. Thực tế hơn thì đó là lời giải thích về việc thiếu nguồn lực, kiểu như “không đủ ngân sách để đầu tư cho cả Element lẫn Element X, Synapse lẫn Dendrite”. Việc chỉ ra dự án thay đổi quá mạnh cũng thật ra là một phần của nỗ lực cải thiện. Ví dụ, Jitsi không có mã hóa, cũng thiếu tích hợp với quản lý danh tính/kiểm soát truy cập và Matrix, nên việc chuyển sang WebRTC thực ra nhằm cải thiện xác minh danh tính và mã hóa đầu-cuối. Việc thay toàn bộ hệ thống xác thực cũng là một bước tiến lớn để hỗ trợ nhiều nhà cung cấp OIDC và thêm các hình thức xác thực mới như 2FA/MFA, passkey. Tranh cãi quanh hai client Element/Element X cũng vậy: Element X nhanh hơn nhưng hiện vẫn thiếu thread/space, tuy nhiên đa số vẫn cho rằng điểm cải thiện là lớn hơn nhiều (và hiện vẫn đang được phát triển). Cuối cùng, tôi đã vận hành Matrix với cả thất bại lẫn thành công, còn việc có phải kiêu ngạo hay quá thông minh đến mức thành vấn đề hay không thì xin để mỗi người tự đánh giá. Kết lại, với ý kiến nghi ngờ tổ chức này bị điều hành bởi Architecture Astronauts, tôi muốn đề xuất xem các video thuyết trình công khai của những lập trình viên thực tế
Về chuyện khó tìm IM cho doanh nghiệp dựa trên chuẩn mở, có người nhắc tới eIRC, một messenger doanh nghiệp dựa trên giao thức IRC, trông khá thú vị. Nó nhắm tới ít tốn tài nguyên, thông lượng cao, độ trễ thấp, và còn hỗ trợ lịch sử tin nhắn dựa trên Redis
Cả Architecture Astronauts lẫn Cowboy Coding đều là cách tiếp cận có vấn đề. Đây là câu chuyện về việc có đảm bảo rõ ràng, định hướng, và sự đồng bộ động lực hay không. Điểm mấu chốt là cả hai kiểu tổ chức đều không thể vận hành tốt nếu thiếu sự đồng bộ đúng nghĩa
Tôi cũng ở vị trí tương tự. Tôi đã dùng Matrix được 3 năm để liên lạc với gia đình ở một quốc gia kiểm duyệt nặng. Có lẽ vì độ phức tạp và thiết kế của chính hệ thống mà hiệu năng thật sự rất tệ. Vẫn dùng được, nhưng rất khó chịu. Element X mới được đưa ra để giải quyết nhiều vấn đề, nhưng ngày càng rời xa các chuẩn phổ biến (TURN/STUN, v.v.) và ép dùng những thứ phức tạp như Element Call, livekit. Gần đây lỗi mã hóa cũng xảy ra thường xuyên hơn: dù đã đồng bộ khóa, một số client vẫn không giải mã được tin nhắn, còn ở chỗ khác thì thậm chí mất cả lịch sử trò chuyện. Vì thế tôi vẫn bám vào Element cũ, nhưng có cảm giác đội ngũ Vector gần như không còn duy trì nó nữa. Những bug nghiêm trọng lâu năm cũng bị bỏ mặc (ví dụ: khi đăng nhập vào homeserver khác thì vẫn tự động kết nối tới matrix.org, rồi nếu domain bị chặn thì bị treo. Mãi tới Element X mới sửa). Tôi có thể tự sửa, nhưng chừng nào iOS chưa cho phép sideloading thì tôi không có cách nào cài bản của mình lên thiết bị của gia đình. Nếu ai biết giải pháp thay thế có web, iOS, Android, dễ self-host, hỗ trợ gọi thoại thì xin gợi ý
Tôi thấy thất vọng khi nghe nói bạn đã bỏ Element X. Mọi nỗ lực và cải tiến mã hóa đều đang tập trung vào Element X. Element Call rốt cuộc vẫn dựa trên WebRTC, và tôi nghĩ việc kết nối trực tiếp tới SFU mà không cần TURN là tốt hơn. Tôi tò mò không biết bạn đã thử cài đặt như thế nào, và bạn cũng có thể tham khảo hướng dẫn cài đặt cơ bản do tôi viết
Tôi hiểu vấn đề với lộ trình của Element, nhưng cũng muốn chỉ ra một vấn đề lớn hoàn toàn khác. Việc bị mắc kẹt trong nền tảng đóng (tức walled garden như iOS) tự thân đã rất khó xử. Đội phát triển cũng không đủ sức làm tất cả, còn bản thân tôi dù muốn sửa app cũng bị nền tảng chặn lại. Thành ra đây là cấu trúc mà trong cuộc thương lượng giữa hai nhóm (nhà phát triển - người dùng) lại có chen vào một “bên thứ ba khó chịu” là nền tảng OS. Giá trị mà nền tảng mang lại là có thật, nhưng trong các vấn đề kiểu này thì nó lại níu chân mọi thứ
Trước đây khi đi lại ở châu Á và Trung Đông, tôi từng rất kỳ vọng vào Matrix thời kỳ đầu vì đang tìm một nền tảng ổn định, ít tốn tài nguyên và dễ ngụy trang tốt (cổng khác/ToR, v.v.). Nhưng rồi nó thất bại, và cuối cùng tôi chuyển sang XMPP đang tiếp tục phát triển ổn định và thấy hài lòng. Khuyến nghị cá nhân của tôi là XMPP
Client monal xmpp hoạt động tốt trên iPhone, nên tôi đang dùng nó để liên lạc với gia đình. Việc có thể tự self-host server, cùng với hỗ trợ nhiều client như 'conversations' trên Android, khiến cả gia đình tôi đều đang dùng
Trong một số lĩnh vực phát triển nhất định (đặc biệt là ActivityPub/Fediverse), động lực dùng Matrix là rất mạnh. Ví dụ, có rất nhiều phòng như “ActivityPub community” ở trên Matrix. Hầu hết dự án FOSS mà tôi quan tâm đều được tìm thấy trên Matrix, còn Discord, Zulip, Slack chỉ là ngoại lệ. Có vẻ như xu hướng là FOSS thích Matrix/IRC/XMPP/Zulip, còn OSS thích Discord/Slack
Liên quan tới việc gần đây phát hiện 2 lỗ hổng bảo mật giao thức (CVE), tổ chức này đang chuẩn bị một đợt cập nhật vá lỗi quan trọng. Nghe nói thời điểm báo cáo ban đầu là từ 6 tháng trước
Theo trải nghiệm của tôi, client Element chậm và rất nhiều bug. Tôi còn hoàn toàn không hiểu cách hoạt động của xác thực tài khoản hay cách tắt thông báo xác thực, nên thấy cực kỳ rối
Bug làm hỏng phòng thực tế là do hỏng chỉ mục DB (2 trong số 55 phòng tôi tham gia bị ảnh hưởng). Kiểu sự cố này khó mà ngăn được ở cấp độ giao thức. Nhưng việc mất hơn 2 tuần để xử lý thì thật sự đáng thất vọng. Trong thời gian đó tin nhắn trên matrix.org bị mất, và tôi cảm thấy ý nghĩa của federation đã không còn nữa
Bug đó thực tế là một sự cố nghiêm trọng khi chỉ mục DB của matrix.org bị hỏng, khiến hàng triệu dòng bị xóa nhầm. Hiện vẫn chưa rõ nguyên nhân là bug PostgreSQL hay là hỏng hóc do lỗi phần cứng từ nhiều năm trước. Dữ liệu hiện đã được khôi phục, và lẽ ra không nên có mất mát dữ liệu trên federation. Tôi tò mò không biết việc thiếu tin nhắn đó có báo cáo bug riêng hay chưa
Nhưng có ai từng điều tra nguyên nhân vì sao tin nhắn cũng không được lưu trên các homeserver khác không? Điểm cốt lõi của Matrix là liên hợp (federation), nên chuyện đó thật kỳ lạ
Vài ngày trước đã có thảo luận về vấn đề ảnh CSAM (hình ảnh lạm dụng trẻ em) liên quan tới Matrix, và những người dùng nêu lo ngại đã bị quản trị viên Element/Matrix phớt lờ và công kích. Dựa trên những vấn đề kiểu này, cùng với lịch sử, những lời hứa bị phá vỡ và chất lượng thấp, có người đánh giá rằng Matrix đã hết thời. Họ cũng cho rằng nó gây ảnh hưởng xấu tới sự phát triển của hệ sinh thái mã nguồn mở
Người ta nhấn mạnh rằng nhận định nói trên (phớt lờ/công kích người nêu lo ngại) là không đúng sự thật. Việc nhận thức vấn đề CSAM, phản ứng tích cực và xin lỗi đều đang được tiến hành
Vấn đề này xuất hiện trên gần như mọi nền tảng như YouTube, Discord, v.v. Ngay cả các nền tảng quy mô hàng tỷ người dùng cũng không giải quyết triệt để được. EU và các nơi khác đang cố giải mã mã hóa, nhưng thực tế là nội dung đó vẫn tràn lan cả trong môi trường không mã hóa, và chưa có giải pháp gốc rễ. Dù khó chịu với Discord/Whatsapp thì mọi người vẫn tiếp tục dùng vì không có lựa chọn thay thế. Với máy chủ Matrix self-host (ở ovh chỉ tốn vài đô mỗi tháng) thì ít nhất cũng không thành vấn đề
Tôi từng muốn thích Matrix, nhưng không rõ lý do vì sao mà bị đưa vào danh sách đen homeserver của matrix.org, và không hề nhận được giải thích hay phản hồi nào. Trong quá trình đó tôi còn gặp vấn đề DB phình lên tới hàng trăm GB (đoán là do người dùng của tôi bị mắc kẹt trong các phòng của matrix.org vì blacklist), nên cuối cùng tôi xóa thẳng DB rồi bỏ luôn
Tôi đã tự vận hành homeserver Synapse nhiều năm và dùng Matrix để trò chuyện với một người bạn. Nhưng việc gửi ảnh thường xuyên bị lỗi (đặc biệt tệ hơn từ khi thay đổi cách xác thực quyền hạn). Gần đây tình trạng ảnh bị mất vẫn lặp lại, và tôi có cảm giác dù có nhờ dev hỗ trợ thì cũng chỉ nhận được câu trả lời kiểu “lỗi tại bạn”, nên tôi quyết định chuyển sang Signal. Một vài cộng đồng ít ỏi còn lại thì tôi sẽ dọn khỏi Matrix zodra tìm được giải pháp thay thế. Lúc nào cũng chỉ thấy lời giải thích kiểu “đây là sự cố ngẫu nhiên”, chứ không thấy vấn đề thực sự được giải quyết
Tôi hoàn toàn đồng ý về Matrix. Tôi đã bỏ nó từ khoảng một năm trước, và cũng không muốn quay lại xem xét lần nữa vì đơn giản là không thể tin tưởng vào lịch sử, cam kết và chất lượng của nó