Services sans état

Un serveur sans état ne garde aucune donnée de session entre deux requêtes : n'importe quelle instance peut répondre à n'importe quel utilisateur. Les sessions partent dans un cache partagé ou un jeton signé, ce qui rend possible le scaling horizontal et l'auto-scaling.

Où on le retrouve dans les vrais systèmes

  • Machine virtuelle

    Le débit augmente avec les vCPU et dépend du runtime : Go sert plusieurs fois plus de requêtes par cœur que Python. Si la mémoire est inférieure aux besoins du runtime, la machine swappe et ralentit fortement. Plusieurs instances derrière un load balancer survivent à la perte de l'une d'elles.

    En production : Amazon EC2, Azure Virtual Machines, Google Compute Engine, OVHcloud Public Cloud

  • Passerelle temps réel

    Le chat, les scores en direct et l'édition collaborative exigent que le serveur parle en premier. Les connexions persistantes ont un état : chaque utilisateur est attaché à un nœud, donc une panne force des reconnexions et il faut un registre de présence pour savoir qui est connecté où.

    En production : AWS API Gateway WebSocket, Socket.IO, Phoenix Channels, Centrifugo, Pusher, Ably

Regarde-le casser, puis répare-le

Construis une architecture, envoie-lui une journée de trafic et de pannes, et comprends pourquoi elle tient ou cède. Gratuit pour commencer.