29 lines
996 B
Markdown
29 lines
996 B
Markdown
# 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
|