Saltar a contenido

ADR-021: Matrix como protocolo de mensajería federado

Estado: aceptado Fecha: 2026-05-17

Contexto

SmallCountry necesita un sistema de mensajería para comunicación familiar (coordinación diaria, avisos, fotos) y potencialmente comunicación con colaboradores externos. Los requisitos incluyen: cifrado extremo a extremo (E2EE), auto-hospedaje, federación para comunicarse con otros servidores, y puentes hacia plataformas existentes (WhatsApp, Telegram) para facilitar la transición. Las alternativas comerciales (WhatsApp, Telegram, Signal) no permiten auto-hospedaje real ni control de datos.

Decisión

Matrix como protocolo de mensajería federado, usando Conduit como servidor (implementación ligera en Rust) y Element X como cliente recomendado para móviles y escritorio. Matrix permite cifrado E2EE, salas federadas, puentes hacia otras plataformas, y es el estándar abierto más adoptado para mensajería descentralizada.

Alternativas consideradas

Opción Por qué se descartó
XMPP (Prosody + Conversations) Protocolo maduro y ligero, pero la experiencia de usuario en clientes modernos es inferior. El soporte para salas, compartir multimedia y federación es menos pulido que Matrix. La fragmentación de clientes (Conversations, Dino, Gajim) confunde a usuarios no técnicos.
Mattermost Buena alternativa tipo Slack, pero el auto-hospedaje de la versión comunitaria carece de algunas funciones de la edición enterprise. No es federado por diseño.
Telegram / Signal / Discord Ninguno permite auto-hospedaje real con control de datos. Signal no tiene servidor federado práctico. Telegram no ofrece E2EE en grupos por defecto.
## Consecuencias
- ✅ Cifrado extremo a extremo (Olm/Megolm) para conversaciones privadas y salas.
- ✅ Federación: SmallCountry puede comunicarse con cualquier usuario de Matrix en otros servidores.
- ✅ Puentes: posibilidad de conectar WhatsApp, Telegram, Signal y otras plataformas para facilitar la migración gradual de contactos.
- ✅ Conduit: servidor ligero escrito en Rust, bajo consumo de recursos ideal para LXC.
- ✅ Element X: cliente moderno, rápido, con soporte para móviles y escritorio.
- ❌ Complejidad de administración: mantener el servidor, los puentes y las salas requiere atención operativa.
- ❌ Ecosistema menos maduro que alternativas comerciales: algunas funciones (llamadas grupales, compartir ubicación) aún están en desarrollo.
- ❌ Curva de adopción: la familia y contactos deben instalar un cliente nuevo (Element X) y aceptar usar Matrix.
## Referencias
- Ficha: Matrix
- Ficha: Jitsi