veza/docs/adr/ADR-002-chat-server-go.md

996 B

ADR-002: Choix de Go pour le Chat Server

Date: 2025-01-01 (révisé 2026-03-04)
Status: Accepted (révisé)
Source: ORIGIN_MASTER_ARCHITECTURE.md

Contexte

Le chat nécessite des WebSocket performantes mais pas la performance critique du streaming audio. Rust était initialement prévu pour tous les services temps réel, mais la complexité de développement et de maintenance n'est pas justifiée pour le chat.

Décision

Utiliser Go 1.23+ avec gorilla/websocket pour le Chat Server. Rust reste pour le Stream Server uniquement.

Conséquences

Positives:

  • Cohérence stack avec le Backend API (Go + Go)
  • Goroutines suffisantes pour les WebSocket chat
  • Recrutement et maintenance plus simples
  • Temps de compilation rapide

Négatives:

  • GC pauses possibles (acceptable pour le chat, non critique)

Alternatives rejetées

  • Rust (Axum): surengineering pour le chat, complexité excessive
  • Node.js: single-threaded, performance inférieure