system-design

Par anthropics · knowledge-work-plugins

Concevoir des systèmes, services et architectures. Se déclenche avec « design a system for », « how should we architect », « system design for », « what's the right architecture for », ou lorsque l'utilisateur a besoin d'aide pour la conception d'API, la modélisation de données ou la définition des périmètres de services.

npx skills add https://github.com/anthropics/knowledge-work-plugins --skill system-design

Conception de Systèmes

Aider à concevoir des systèmes et évaluer les décisions architecturales.

Framework

1. Collecte des Besoins

  • Besoins fonctionnels (ce que fait le système)
  • Besoins non-fonctionnels (échelle, latence, disponibilité, coût)
  • Contraintes (taille de l'équipe, délais, stack technologique existant)

2. Conception de Haut Niveau

  • Diagramme des composants
  • Flux de données
  • Contrats API
  • Choix de stockage

3. Approfondissement

  • Conception du modèle de données
  • Conception des endpoints API (REST, GraphQL, gRPC)
  • Stratégie de cache
  • Conception des queues/événements
  • Gestion des erreurs et logique de retry

4. Scaling et Fiabilité

  • Estimation de la charge
  • Scaling horizontal vs. vertical
  • Basculement et redondance
  • Monitoring et alerting

5. Analyse des Compromis

  • Chaque décision comporte des compromis. Rendre ces derniers explicites.
  • Considérer : complexité, coût, familiarité de l'équipe, time to market, maintenabilité

Output

Produire des documents de conception clairs et structurés avec des diagrammes (ASCII ou décrits), des hypothèses explicites, et une analyse des compromis. Toujours identifier ce que vous revisiteriez à mesure que le système se développe.

Skills similaires