Communitygithub.com

Piyush-Nagar/coding-agents-skills

Zuverlässigkeit ist die Disziplin, betriebsfähig zu bleiben, wenn die Umgebung um dich herum versagt – denn das wird sie. Gestalte zuerst für partielle Ausfälle; die glücklichen Pfade regeln sich von selbst.

Was ist coding-agents-skills?

Diese Fähigkeit vermittelt die grundlegenden Prinzipien und praktischen Regeln für den Aufbau zuverlässiger Softwaresysteme. Sie richtet sich an Entwickler:innen, die in Cloud-nativen Umgebungen (z.B. Kubernetes, Microservices) arbeiten und Systeme entwerfen, die auch bei Teilausfällen funktionsfähig bleiben. Die Skill-Dokumentation listet zehn verbindliche Regeln auf – von Timeouts bei jedem ausgehenden Aufruf über Idempotenzschlüssel bis hin zu Graceful Shutdown – und warnt vor typischen ‚Red Flags‘ wie fehlenden Timeouts, unbegrenzten Retry-Schleifen oder nicht geübten Disaster-Recovery-Prozessen. Sie ist plattformunabhängig und kann in beliebigen Tech-Stacks (Java, Python, Go, etc.) angewendet werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Piyush-Nagar/coding-agents-skills/tree/HEAD/backend/core/nfr/reliability

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Zuverlässigkeit

Zuverlässigkeit ist die Disziplin, betriebsfähig zu bleiben, wenn die Umgebung um dich herum versagt – denn das wird sie. Gestalte zuerst für partielle Ausfälle; die glücklichen Pfade regeln sich von selbst.

Regeln

  • Timeouts bei jedem ausgehenden Aufruf. Keine Ausnahmen. Ein fehlendes Timeout ist ein Thread-Pool-Erschöpfungsvorfall, der nur darauf wartet, zu passieren.
  • Wiederhole nur idempotente Operationen. Mit exponentiellem Backoff und Jitter. Das Wiederholen eines nicht-idempotenten POST erzeugt Duplikate, belastet Kreditkarten doppelt, sendet zwei E-Mails.
  • Idempotenzschlüssel bei mutierenden öffentlichen APIs. Ermöglichen Clients sichere Wiederholungen bei Netzwerkstörungen, ohne dass du raten musst.
  • Unterbreche externe Abhängigkeiten mit Circuit Breaker. Wenn ein nachgelagerter Dienst krank ist, schützt schnelles Fehlschlagen sowohl dich als auch ihn. Blinde Wiederholungen verwandeln eine Störung in zwei.
  • Kapsle kritische Pfade (Bulkhead). Isoliere Thread-Pools / Verbindungspools pro nachgelagertem Dienst, damit ein langsamer nicht den gesamten Service lahmlegen kann.
  • Sanfte Degradation ist besser als harter Fehler. Liefere einen veralteten Cache, eine teilweise Antwort oder eine reduzierte Funktionsvielfalt statt eines 500.
  • Keine Single Points of Failure. Multi-AZ für jeden zustandsbehafteten Komponenten, mehrere Replikate für jeden zustandslosen, LB-Health-Checks, die tatsächlich Krankheit erkennen.
  • Herunterfahren muss sanft erfolgen. Entgegennahme laufender Anfragen beenden, Pools schließen, Puffer leeren. SIGTERM → keine neuen Anfragen annehmen → laufende beenden oder abbrechen → beenden.
  • Stelle sicher, dass ein Neustart jederzeit sicher ist. Jeder einzelne Pod sollte jederzeit getötet werden können, ohne dass der Benutzer etwas merkt. Wenn nicht, ist das der Fehler, der behoben werden muss.
  • Backups sind ungetestet, bis du aus ihnen wiederherstellst. Führe eine echte Wiederherstellungsübung nach Plan durch.

Rote Flaggen

  • restTemplate.exchange(...) ohne konfiguriertes Timeout.
  • Eine Wiederholungsschleife ohne Begrenzung und ohne Backoff.
  • „Es funktioniert, wenn du neu bereitstellst.“ (Versteckter Zustand im Speicher.)
  • Ausfallfreie Bereitstellungen, die nicht wirklich ausfallfrei sind, weil Anfragen bei SIGTERN fallen gelassen werden.
  • Disaster-Recovery-Playbook, das noch nie ausgeführt wurde.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Verwandte Skills