Cell-Based Architecture
Architecture 🔴 SeniorDéfinition
Découpage d'un système en cellules indépendantes et identiques, chacune servant un sous-ensemble de clients avec sa propre pile complète (calcul, base, files). Un routeur de cellules, le plus mince possible, dirige chaque requête vers la bonne cellule ; un plan de contrôle provisionne les cellules. Une panne, un bogue ou un déploiement raté ne touche qu'une fraction des clients. AWS documente le pattern dans son guide Well-Architected « Reducing the Scope of Impact with Cell-Based Architecture ».
Analogie
Les compartiments étanches d'un navire : une voie d'eau inonde un compartiment, pas la coque entière.
Exemple de code
// Routeur de cellules : couche mince, déterministe, sans logique métier
const CELLS = ['cell-a', 'cell-b', 'cell-c'];
function cellFor(tenantId: string): string {
// hachage stable → un tenant vit toujours dans la même cellule
const h = [...tenantId].reduce((a, c) => (a * 31 + c.charCodeAt(0)) >>> 0, 7);
return CELLS[h % CELLS.length];
}
app.use((req, res, next) => {
const cell = cellFor(req.headers['x-tenant-id'] as string);
proxy.web(req, res, { target: `https://${cell}.internal` });
});
// Déployer la version N+1 sur cell-a d'abord = canary par cellule.
Cas d'usage
Plateforme multi-tenant à forte exigence de disponibilité, où l'on veut borner le « rayon d'explosion » d'un incident ou d'un déploiement.
Anti-pattern
Termes liés
Fiche mise à jour le 2026-09-27