Přeskočit na obsah

Architektura

Dokument je psaný pro člověka, který k systému přichází bez kontextu: jeden diagram toku, pět rozhodnutí i s jejich cenou, tabulka komponent a tabulka selhání. Sám v hlavičce přiznává, že popisuje zamýšlenou architekturu — moduly označené (planned) jsou návrh, ne kód.

Replika
append-only, není přestavitelná — je zdrojem pravdy
Projekce
odvozená, kdykoli přestavitelná přehráním logu
Nasazení
FastAPI služba, jeden ARQ worker, PostgreSQL, Redis, úložiště dokumentů
Existuje dnes
FastAPI skeleton, typovaný doménový model, statický web
Plánováno
poller, klient feedu, replika, projektor, pipeline, fronta kontroly

Pět rozhodnutí v jedné větě každé

Co musí přežít incident

Tabulka úložišť dělí systém na dvě kategorie a zálohovací politika z ní plyne mechanicky. Replika (feed_actions, feed_checkpoint) přestavitelná není. Úložiště dokumentů znovu stáhnout lze, ale je to drahé a vůči zdroji nezdvořilé.

Projekční tabulky, cache extrakcí a všechno v Redisu jsou odvozené. Proto úložiště dokumentů musí v každém nasazení stát na perzistentním disku — je to ta nákladně obnovitelná polovina systému.

Chování při selhání

SelháníChování
WS ISIR nedostupnébreaker se otevře, poller couvne, stav se nemění, metrika zpoždění roste a alertuje
Zdroj vrátí chybový kódmapuje se fail-closed, nikdy jako záporný výsledek
Pád uprostřed dávkycheckpoint se nepohnul, dávka se stáhne znovu, idempotentní zápis z opakování udělá no-op
Selhání stažení dokumentudokument zůstává pending, omezené opakování, příjem to nikdy neblokuje
Extrakce selže nebo má nízkou confidencemíří do fronty lidské kontroly i se zdrojovým dokumentem
Chyba v projektoruoprav, zvyš verzi projektoru, přestav z logu; repliky se to nedotkne

Kde to v repozitáři žije

Souvisí

Zpět na sekci Dokumentace