castomFLOW
Òtemkni castomFLOW

Dzéłania, jacz mòżesz ùfabac

Nikt nie zôbaczy automatu, aż òn wësëli cos dwa rôzy

Wtedë zôbaczą wszëscy. Czteré mechanizmë na ti starnie są, bo felerë taczegò softwarë są zôs kòżdi rôz te same czteré felerë, ë wszëtczé da sã ùniąc przez kònstrukcëjã, a nie przez ùwadã.

Symuluj, zanim pùszczësz

Pùszczë przez robòtã, chtërna je wëłączonô, naprawdã zapis ë czëtaj zôpôc dokładnie, co bë sã stalo: jaczą drogã wëbrano, kòżdą wôrt na kòżdim kroku, fòrmùlowanié kòżdi wiadë ë żądanié, chtërno bë pòszło do kòżdegò zewnątrznegò systemu.

Nic nie wëchôdza z bùdinkù. Żodnô e-mail nie je wësłónô, żodnô faktura nie wëstôwiónô, żodné pòlacënk nie spróbòwóny, żodnô linijka nie zapisónô. Zewnątrzne wëzwania są zapisóné jakno zamiôrë, z ładowanim, chtërné bë wëszło, żebë mògłë ùfabac, czë mapowanié je dobri, zanim stani sã kimòs problemã.

Symulacje to jak òdpòwiesc na pëtanié, chtërné zatrëmùwô lëdzy przed włączenim automatu: co to naprawdã zrobi?

Symulacja · zamòwienié 88 214Nic nie wësłóné
  • 1Sprôwdzë adresãDopasowóné. Zapisalëbë 6 pól.
  • ?WarënkZamòwienié nad 1 000 zł? Nié — 289,00 zł. Krótkô droga wëbrónô.
  • 3FakturaBë sã wësłôł POST do systemu faktùrowaniô. Ładowanié pòkôzóné w całoscë.
  • !Złapóné tuStôwka VAT mapowónô z zëch pól. Znalezioné w symulacji, a nie w skrzynce ksãgowi.

Wësłóné: nicPòlacënk: nic

Dzéłanié krôcë pò wersëji, na jaczi weszło

Òpublikowanié zmianë w robòce nie dëtkùje dzéłaniów, chtërné są ju w nim. Kòżdé dzéłanié je przëpnié do wersëji, na jaczi sã zaczło, ë dôkończëwô tã wersëjã, bò czedë trwô ë bò czedë w midzyczasie przepisëjesz.

Dlô tegò mòżesz przëùstôwiac robòtã, czedë dziesiącë tësąców lëdzy są w pòłowie, ë kòżdi z nich dôkończë drogã, jaczi sã jich pòswiôdczëło. Alternatiwa — kònstrukcëjô, w chtërny cała dalszô droga je materializowónô przë wejscym — to pòwód, dlô czegò redagowanié żiwégò automatu czëje sã niebezpieczno w nôwëższich nôrzãdzach. Tu je to zwëkłé.

Nowé dzéłania dostôwają nową wersëjã òd momentu publikacji. Na jaczi wersëji je dzéłanié, je zapisóné na dzéłanim, tak że pëtanié ò zachòwanim w marcù mô òdpòwiesc we séwnikù.

Redagowanié pòd czem dzéłôv4 → v5
  • 1Przed2 918 dzéłaniów w biegù, wszëtczé na v4. Niechtërné w dwudniowim czekanim.
  • 2Òpublikùj v5Dwa kroki przestawioné, jedna wiadë przepisónô.
  • 3PòTe 2 918 dôkończëwô v4. Wszëtkò, co zaczinô sã òd 11:40, krôcë pò v5.
  • §Niktnie dostôł pòłowë jedny robòtë ë pòłowë drëdżi.

Wersëjô zapisónô na kòżdim dzéłanimStaré wersëje zatrzymané

Pòwtórë, chtërné nie mògą wësłac dwa rôzy

Krok je czëstą fùnkcją swòjich wéńdzeniów, a jegò skùtczi zapisują sã wspólnò z przesãdzeniém dzéłaniô do nôstępnégò kroku. Nie ma òkna, w chtërnym wiadã ju wëszła, a dzéłanié ò tim nie wie.

To je cała sztëczka, ë to je strukturalnô wlasnota, a nie pòswiôdzenié. Robòtnik zabity w pòłowie kroku — wëdanié, awariô, maszyna, chtërna zniknã — zôstôwiô dzéłanié dokładno tam, gdze bëło. Jinny robòtnik je pòdwëzëwô ë pòwtórô krok. Bò skùtk ë przesãdzenié zapisują sã jakno jedno, abò stalo sã òbò, abò nic.

Wëzwania do systemów, chtërné pòdpierają klucze idempotencji, niosą jeden, wëwòdzony z dzéłaniô ë kroku, żebë drëgô strona téż mògła pòznac pòwtórã.

Robòtnik zabity w pòłowie wësëłaniôÒdzyskóné
  • 1Krok 5 sã zaczinôPòslij zawiadomienié ò wësylce.
  • ✕Robòtnik ùmërôWdërzë. Nic nie bëło zapisóné.
  • 2PòbrónéInny robòtnik nalazëwô, że beg wcyg je na kroku 5.
  • ✓Posłóné rôzKlient òtrzymał jedny maila, nie dwa.

Skùtc zapisëją sã raz z pòstãpãKlucz idempotencji dlô kążdégò bega i krokù

Log zapisóny dlô człowieka, żebë mógł czëtac

Kążdi beg, kążdi krok, gałązka, chtërną wziął, i wôrtosć, chtërna ò tim zdecydowała. Czasony na kążdi krok. Zadanié i òdpowiedz kążdégò zewnątrznegò wëwołania, z zamaskòwónyma pòdôwkama dostępu. Wersjô, na chtërny beg béł. Gdze beg czekô i do kùlu.

Gdë niechtë pëtô, co sã stalo z zamòwienim z czterdnastégò, je òdpòwiedz, i nalazc jej zajimô minutã, a nie pòpołudnie szëkaniô w logach trzech systemów.

Begi, chtërne nie wëszłë, zbëją sã na jednym môlu z pòzwą zgrupowóną, tak że „czterdzescë jedny niepòwòdzenié w noc” wësëwô sã na „jedny dostôwcô zwrôcôł 503 przez dziewiãć minut”, a nie na czterdzescë jedny òsóbne szëkanié.

W noc, zgrupowóné41 niepòwòdzeniów
  • 1Jednô przëczënaAPI dostôwcë zwrôcôł 503 miedzy 02:41 a 02:50.
  • 2Co sã staloWszëtké 41 znowa sprôwioné; 39 wëszło za drëgim razã.
  • 3ZostôwôDwa stane i czekają na człowieka. Òba są wëpisóné z rézã, chtërna nie wëszła.
  • §Nie czterdzescë jednyszëkaniô. Jedno, i decyzjô ò dwùch zapisach.

Pòdôwczi dostępu zamaskòwónéWersjô zapisónô

Czégò nie òbiecôwómë

Nie pùblikùjëmë liczby dostãpnoce na marketingowi starnie, bo liczba bez òkresu miérë i definicjë „dostãpnégò” je òzdobą. Jeżlë trzëbô wam kontraktowò, pëtajcie, a gadôcëmë ò tim, do czegò mòżemë naprawdę zòbôcëc.

Nie mòżemë téż zrobic cudzégò API zawodnégò. Jeżlë dostôwcô nie dôłô, wòrkflow, chtërno òd niegò zôwisi, czekô, sprôwô znowa i na kùńc stôwô z jasną przëczëną. Czégò mòżemë òbiecôc, to je, że niepòwòdzenié je wëzdrzóné, że nic nie pòpsëwô, i że pòdwzëc nie posyłô wiadłosc drëgi rôz.

Ò czekaniu: beg czekający dwa dni to je wake_at na begù, a nie robota stojąca w czekarni. Dlô tegò wòrkflow mòże trzëmac stô tacësąc begów w trzëtedniowim czekaniu bez kążdégò kòsztu, i dlô tegò liczba begów, chtërne terô czekają, nie je czim, co mùszisz miec na ùwadze.

Beg, ò chtërnim nigdë nie mëszlisz, to ten, chtërny wëszedł.