IREX - Comment le protocole Matrix communique les données entre applications ?

comprendre comment Matrix permet à des applications différentes de s’échanger des données, à travers l’exemple d’une intégration entre Element et ERPNext.

 · 3 min read


  1. Introduction

  2. Le protocole Matrix est une solution de communication décentralisée et open source.
    Contrairement aux messageries classiques comme WhatsApp ou Telegram, il ne dépend pas d'une seule entreprise mais repose sur une fédération de serveurs.
    Objectif de cet article : comprendre comment Matrix permet à des applications différentes de s'échanger des données, à travers l'exemple d'une intégration entre Element et ERPNext.

  3. Un protocole décentralisé

  4. Matrix fonctionne de manière similaire aux emails : chaque utilisateur est enregistré sur un serveur (appelé homeserver), mais peut communiquer avec des personnes ou des applications sur d'autres serveurs.
    Cela garantit interopérabilité et liberté : chacun peut héberger son propre serveur, mais rester connecté à l'ensemble du réseau Matrix.

  5. La structure de Matrix
    1. Homeserver
    2. Le homeserver est le cœur de l’infrastructure Matrix. Il gère l’ensemble des comptes utilisateurs (authentification, gestion de profils, autorisations) et stocke l’historique des conversations. Chaque utilisateur s’enregistre sur un homeserver spécifique, qui agit comme point central pour ses communications. Par exemple, un utilisateur inscrit sur @obounyamine:irex.aretex.ca dépend du homeserver irex.aretex.ca. Le homeserver conserve également les métadonnées des échanges et peut être configuré pour gérer des salons privés, publics, chiffrés ou non.

    3. Clients
    4. Les clients sont les applications que les utilisateurs installent pour interagir avec le réseau Matrix. Ils permettent d’envoyer et de recevoir des messages, de créer des salons de discussion, d’échanger des fichiers, de participer à des appels audio/vidéo, etc. Un des clients les plus populaires est Element (disponible sur mobile, web et desktop), mais il existe aussi d’autres implémentations comme FluffyChat, SchildiChat ou Nheko. Les clients communiquent avec le homeserver via l’API Matrix, garantissant une interopérabilité totale.

    5. Fédération
    6. La fédération est le mécanisme qui distingue Matrix des systèmes centralisés. Elle permet aux différents homeservers d’échanger entre eux les messages et événements en toute transparence. Grâce à ce principe, un utilisateur du serveur irex.aretex.ca peut discuter avec un utilisateur du serveur matrix.org, comme s’ils étaient sur la même plateforme. Chaque homeserver conserve une copie des conversations pertinentes, ce qui assure la résilience (les échanges persistent même si un serveur est indisponible) et la décentralisation. Ce modèle est comparable à celui du courrier électronique (où Gmail peut échanger avec Outlook ou Yahoo).

  6. Comment Matrix communique les données ?
  7. Lorsqu'une donnée (message, notification, fichier) circule sur Matrix, elle est représentée sous forme d'événement JSON.
    Chaque événement contient : un identifiant unique, une signature, son contenu (texte, fichier, notification, etc.).

    Le processus est le suivant :
    1. L'application (client ou service) envoie l'événement au homeserver.
    2. Le homeserver enregistre cet événement dans l'historique de la salle.
    3. Si d'autres homeservers participent à cette salle, l'événement leur est répliqué via la fédération.
    4. Chaque participant reçoit une copie cohérente et mise à jour de l'historique.
  8. Exemple concret : Element et ERPNext
  9. Prenons le cas de l'utilisateur @obounyamine:irex.aretex.ca.

    1. Il utilise Element, connecté au homeserver irex.aretex.ca.
    2. Le site ERPNext www.irex.aretex.ca est configuré pour envoyer des notifications (Ex: une facture validée, une tâche assignée, une alerte système).
    3. Lorsqu'un événement survient dans ERPNext, celui-ci génère un message Matrix et l'envoie au homeserver irex.aretex.ca.
    4. Le homeserver ajoute l'événement dans la salle de discussion associée à l'utilisateur.
    5. Element de @obounyamine:irex.aretex.ca se synchronise avec le homeserver et affiche la notification instantanément.

    Résultat : l'utilisateur reçoit directement dans Element les alertes provenant d'ERPNext, sans passer par des emails ou des SMS.

  10. Sécurité et chiffrement
  11. Pour protéger les échanges, Matrix implémente le chiffrement de bout en bout via les protocoles Olm et Megolm.
    Les messages sont chiffrés côté ERPNext avant d'être envoyés.
    Seul le client Element de l'utilisateur détient les clés pour les lire.
    Même le homeserver irex.aretex.ca ne peut pas voir le contenu en clair.

  12. Conclusion

  13. Matrix n'est pas qu'une application de messagerie : c'est un protocole universel de communication décentralisée qui peut communiquer les données entre plusieurs applications de manière simple et sécurisé.


Bounyamine Ousmanou

Développeur web/mobile

No comments yet

No comments yet. Start a new discussion.

Add Comment