L’article explore les défis méconnus des équipes d’ingénierie réparties à l’international. Basé sur son expérience chez Getaround, il révèle que les fuseaux horaires réduisent significativement la productivité, malgré les avantages théoriques (24/7 développement, accès à plus de talents). Les équipes locales restent plus efficaces, et les solutions comme les outils async ne compensent pas la perte de collaboration en temps réel. L’auteur, ayant géré des équipes acquises à l’étranger, prône des équipes regroupées géographiquement (3-5h max de décalage) pour faciliter l’intégration et les relations humaines, surtout après des fusions. Un constat sans appel : mieux vaut limiter les dégâts que prétendre à une performance optimale en global.
Ce billet explique la différence fondamentale entre les Message Queues (files d'attente de messages) et les systèmes Pub/Sub (publication/abonnement), souvent confondus. Les Message Queues, comme RabbitMQ ou SQS, utilisent une structure FIFO où les messages sont traités une fois et supprimés, idéales pour des tâches uniques comme l'envoi d'emails ou des jobs CI/CD. Les systèmes Pub/Sub, comme Kafka, utilisent un log append-only où les messages restent disponibles pour être relus, parfaits pour l'analytics en temps réel ou le traitement d'événements. Choisir le mauvais outil peut entraîner des problèmes techniques majeurs. L'auteur détaille les cas d'usage et les avantages de chaque système.
L'auteur fait un état de l'art des différentes solutions pour les modifications en temps réel de ressources web : Braid, PREP et Mercure
Il s'agit d'un cas concret d'utilisation de Mercure : lorsque 2 administrateurs éditent simultanément la même ressource, Mercure permet de notifier lorsque le premier des deux valide ses modifications.
Tout est dans le titre
Les web sockets sont utiles si l'on veut une communication bi directionnelle entre le client (navigateur) et le serveur... Dans le cas où l'on souhaite juste une communication serveur vers client, il vaut mieux utiliser les SSE. L'auteur montre comment faire en JavaScript (côté client et serveur)
Tout est dans le titre, un tuto pas mal fait :)