J'ai construit une application de messagerie instantanée entièrement sur @Cloudflare. Cela a pris 1 jour, 3 fichiers, 4 ressources... et elle est prête à évoluer de 0 à des millions. Worker → auth & routing Base de données D1 → stocker utilisateur/mot de passe Service utilisateur DO → profil utilisateur & amis Service de conversation DO → messages Blog en réponse, mais un rapide aperçu ici : La bibliothèque cloudflare/actors a rendu beaucoup de cela très facile avec des propriétés persistantes, une gestion simple des connexions WebSocket et l'envoi de messages à tous les auditeurs. Mais que fait chaque élément ? Auth & Routing (Worker + D1) Toutes les requêtes passent par le Worker, qu'elles soient authentifiées ou non. Si non authentifiées, les actions disponibles sont de se connecter ou de s'inscrire. Lorsqu'elles sont authentifiées, elles peuvent alors transmettre la requête à l'un de nos Objets Durables (utilisateur ou conversation) pour établir une connexion WebSocket. Toutes les informations d'authentification des utilisateurs sont stockées dans une base de données D1 (nous avons tout gardé CF pour cet exemple). Service Utilisateur (Objet Durable) Notre vue de la liste d'amis se connecte directement à notre Objet Durable utilisateur via WebSocket. Lorsque nous mettons à jour notre statut, nous envoyons un message à notre DO individuel qui peut ensuite diffuser via RPC à nos DO d'amis et déterminer s'ils sont en ligne pour leur envoyer un message WebSocket pour une mise à jour en direct. C'est ici que nous stockons également notre liste d'amis dans une base de données SQLite limitée à notre utilisateur. Service de Conversation (Objet Durable) Chaque conversation individuelle entre deux utilisateurs obtient sa propre instance de DO. Sa seule responsabilité est de stocker les messages, d'envoyer des notifications (via sockets) lorsque de nouveaux messages sont envoyés, et d'envoyer une notification lorsqu'un utilisateur commence à taper afin que nous puissions voir "La personne est en train de taper..." TLDR ; Construire des applications pour le plaisir afin de revivre des souvenirs d'enfance nostalgiques, c'est... ça en vaut la peine.