Stand: 2026-03-20

J01-16 Runtime: Concurrency, Locking und atomare Zugriffe
Typ
Task
Status
Erledigt
Priorität
Highest
Bearbeitung
Dani Y.
Sprint
-
Sprint-Rolle
Sprint-Ziel
Lösung
Fertig
Aktualisiert
2026-03-20T12:36:01.730+0100
Übergeordnet
J01-5
Andere Vorgänge
Blockiert durch: J01-21 — Runtime: IP_SALT-Verwaltung und Guardrails — Erledigt
Blockiert: J01-9 — Preview: Workflow wieder aktivieren — Zu erledigen
Blockiert durch: J01-40 — Runtime: Technische Konstanten vereinheitlichen — Zu erledigen

Inhalts-Schlüssel

Diese Seite

Öffentliche Schritte

Kanonischer öffentlicher Arbeitsstand für J01-16. Der Vorgang führt den bereits erprobten Runtime-Rahmen aus J01-21 auf weitere kritische Dateizugriffe aus und bündelt die abgeschlossene Concurrency- und Locking-Ausrollung des Preview-Pfads.

Ziel

Kritische Runtime-Schreibpfade im Preview-Betrieb unter Parallelzugriff konsistent machen:

  • Rate-Limit
  • CAPTCHA-Verifikation
  • Token-Rotation

Dabei soll J01-16 den Rahmen aus J01-21 sichtbar übernehmen, aber nur dort kopieren, wo das Fachverhalten es wirklich trägt.

Referenzpfad

Der erledigte Vorgang J01-21 ist das Vorbild für diesen Strang. Von dort werden für J01-16 verbindlich übernommen:

  • Locking über symfony/lock
  • begrenzter Lock-Erwerb mit Polling und Timeout
  • atomische Writes für zustandsverändernde Dateipfade
  • testbare Lock-Key-Strategie statt verdeckter Seiteneffekte
  • deterministische Fehler- und Recovery-Pfade

Bewusst nicht blind übernommen wird jedes Detail des IP_SALT-Pfads. Insbesondere bleiben mehrstufige Marker wie IN_PROGRESS und READY für andere Verwalter nur dann passend, wenn ihr eigenes Fachverhalten denselben Übergang wirklich braucht.

Abschlussbild

Delta 2026-03-20

  • Die zuvor noch uncommitteten App-Reste aus 16-1 und 16-2 wurden im Quell-Repo auf feature/j01-16-runtime-locking in zwei getrennten Commits nachgezogen: ee45a62 für J01-17 und 8ab08e4 für J01-18.
  • php bin/cli config lint dev läuft grün.
  • Die betroffenen PHPUnit-Tests für CaptchaService, RateLimiter, TokenService und ConcurrencyTest laufen mit gesetztem TMPDIR grün.

Überprüfungsplan

Prüfpunkt Erwartung Nachweis / Ort Status
Rate-Limit- und CAPTCHA-Schreibpfade laufen unter Lock 16-1 dokumentiert Lock-Zuschnitt, atomische Writes und Zieloperationen 16-1 erledigt
Token-Rotation ist gegen Parallelzugriff abgesichert 16-2 führt Lock-Key, atomisches Schreibverhalten und grüne Tests 16-2 erledigt
Race-nahe Tests sichern die Locking-Ausrollung ab 16-3 zeigt die sieben Testnachweise für Timeout- und Konsistenzfälle 16-3 erledigt
Öffentliche Runtime-Betriebsdoku trägt denselben Endstand 16-4 zieht den Bereich auf einen stabilen Langzeitzustand nach 16-4 erledigt
Jira, Arbeitsdoku und öffentlicher Jira-Stand sind konsistent J01-16 ist in Jira auf Erledigt mit Lösung = Fertig gesetzt; die öffentliche Doku widerspricht nicht mehr Jira-Cloud, diese Seite, öffentlicher Jira-Nachzug erledigt

Öffentliche Wirkung im Preview-Pfad

J01-16 ist Teil des Sprint-Ziels für das Preview-Deployment. Der Vorgang macht die Stabilitätsbasis sichtbar, auf die der Preview-Pfad sich für wiederholbare Runtime-Zugriffe stützt. Die kanonische Bereichsaussage bleibt im Bereich: HTTP-Runtime; diese Seite hält den vorgangsbezogenen Abschlussstand.

Provenienz

Der fachliche Ursprung liegt im früheren docs/agile-Strang ISS-012, der direkt an den schmaleren Referenzpfad aus ISS-011 anschloss. Im heutigen Jira-Zuschnitt werden diese beiden historischen Quellen über J01-16 und den erledigten Referenzvorgang J01-21 öffentlich geführt. Die Tagebuch-Notizen vom 2026-03-18 und 2026-03-19 dokumentieren zusätzlich, dass 16-3, 16-4 und der Abschluss von J01-16 im Sprint tatsächlich vollzogen wurden, auch wenn der öffentliche Nachzug zeitweise hinterherhing. Die heutige Korrekturrunde schließt zusätzlich den bis dahin noch offenen Unterschied zwischen öffentlicher Schrittdoku und lokalem App-Arbeitsbaum.

Abschluss

J01-16 ist fachlich abgeschlossen. Der Runtime-Rahmen aus J01-21 ist für Rate-Limit, CAPTCHA und Token-Rotation ausgerollt, die race-nahen Tests liegen vor, und die öffentliche Betriebsnotiz trägt denselben Endstand. Der noch offene Punkt lag nicht mehr in Jira oder im Code, sondern nur im verspäteten öffentlichen Sync dieser Arbeitsdoku.