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

30 lines
996 B
Markdown
Raw Normal View History

# 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