Skip to content

Architecture Server

Go Gin PostgreSQL Redis GORM

API REST Go/Gin mono-tenant, self-hosted chez chaque client, pour superviser des conteneurs Docker.

L’architecture du serveur est découpée en plusieurs sections pour une meilleure compréhension :

  1. Stack & Structure : Philosophie, choix technologiques et arborescence du projet.
  2. Pattern CQRS & Couches : Détails du pattern CQRS simplifié, interfaces et implémentations des handlers.
  3. Audit Log & Redis Streams : Traçabilité des actions métier via Redis Streams et worker asynchrone.
  4. Cache & Base de données : Stratégie de cache-aside Redis et persistance via GORM/PostgreSQL.
  5. Erreurs, Config & Déploiement : Gestion des erreurs, configuration par variables d’environnement et stratégie de tests.

Pattern CQRS simplifié (Vue d’ensemble)

Section titled “Pattern CQRS simplifié (Vue d’ensemble)”
Angular 22 ──HTTP/WS/SSE──> Gin handler ──> Command/Query handler
│ │
Command ─────┘ └──── Query
│ │
GORM write Redis GET ──miss──> GORM read
│ │ │
invalidate cache <───────────────┴──── Redis SET ◄──┘
gRPC agent / événement temps réel

La séparation des responsabilités entre les commandes (écritures) et les requêtes (lectures) permet d’optimiser les performances via Redis tout en conservant PostgreSQL comme source de vérité absolue.