Přeskočit na obsah

Dostupné

Klient WS ISIR a limity

První položka fáze 1. Klient je jediné místo, kde se tenhle systém dotýká cizí infrastruktury, a proto v něm nesedí jen parsování — sedí v něm i to, co se smí zdroji poslat a co se stane, když zdroj neodpoví.

Položky fáze
1.1 klient a typované parsování akcí, 1.2 limiter a jistič
Závisí na
0.11 — ověřený kontrakt zdroje, hotový 3. 9. 2026 bez driftu
Publikované stropy
50 požadavků za minutu, 3000 za den
Konfigurace
isir_minute_limit a isir_daily_limit; vyšší hodnota než publikovaná odmítne nastartovat
Stav
1.1 a 1.2 hotovo 30. 9. 2026 — src/progresus_isir/ingest/; export metrik čeká na E25

Co klient dělá

Feed publikuje akce: neměnné, číselně uspořádané záznamy o všem, co se v rejstříku stalo. Klient umí jediný dotaz, který na tom stojí — dej mi všechno po id N — a jeho odpověď převede do typovaných objektů, ne do slovníků, které si každý čtenář vyloží po svém.

Parsování je fail-closed: co se nepodaří naparsovat, není prázdný výsledek, ale chyba. Malformovaná dávka nesmí projít dál jako „nic nového“, protože přesně tak vypadá tichá ztráta dat.

Limit je právní hranice, ne ladicí parametr

Provozní podmínky zdroje jsou 50 požadavků za minutu a 3000 za den. Limiter kontroluje rozpočet před odesláním požadavku — reagovat až na odmítnutí ze strany serveru znamená, že k překročení už došlo.

Konfigurace to hlídá i mimo běh: nastavení volnější než publikované stropy shodí start aplikace. Konfigurovat se dá jen směrem dolů. Změna čehokoli ve fetch chování má vlastní politiku review, protože jde o vztah k provozovateli rejstříku, ne o výkon.

Selhání se nesmí tvářit jako výsledek

Jistič izoluje nedostupný zdroj: po sérii selhání se rozepne, po prodlevě přejde do poloviční propustnosti a jeden úspěch ho zavře. Výchozí hodnoty (pět selhání, 30 sekund) jsou v konfiguraci aplikace. Po prodlevě projde jediný zkušební požadavek, ne všichni najednou.

Odmítnutí rozepnutým jističem je přenosová chyba, nikdy obchodní odpověď. Nesmí se nikdy zapsat jako „takové řízení neexistuje“ — to je rozdíl mezi dočasným výpadkem a nepravdivým údajem v databázi.

# Jistič před voláním zdroje. Výchozí práh je 5 po sobě jdoucích selhání a 30 sekund do zkušebního obnovení. Odmítnutí otevřeným jističem je přenosová chyba, nikdy záporný výsledek.

Kde to v repozitáři žije

  • src/progresus_isir/ingest/public_ws.py — klient, parsování akcí a pořadí bran před každým požadavkem
  • src/progresus_isir/ingest/redis_terms.py — sdílený rozpočet a jistič v Redisu
  • docs/INGESTION.md — poll smyčka, invarianty ING-1 až ING-7, limity a jistič
  • docs/ISIR-SOURCE-SEMANTICS.md — co feed publikuje a jaké jsou provozní podmínky zdroje
  • src/progresus_isir/config.py — limity, jistič a validace, která volnější nastavení odmítne
  • .aiad/policies/source-terms-review.policy.md — review pro každou změnu chování při stahování

Souvisí

Zpět na sekci Roadmapa