castomFLOW
castomFLOW opmaachen

Runen op déi Dir ziele kënnt

Ni bemierkt eng Automatiséierung bis se eppes zweemol schéckt

Duerno bemierken all. Déi véier Mechanismen op dëser Säit existéiere well d'Feeler vun dëser Aart Software ëmmer déi selwecht véier Fehler sinn, an all duerch Design vermeidbar sinn amplaz duerch Suergfalt.

Simuléier ier du publizéiers

Schéckt e richtegen Record duerch e Workflow deen ausgeschalt ass, a liest genee zréck wat geschéie géif: de Wee deen geholl gouf, all Wäert op all Schrëtt, d'Formuléierung vun all Message, an d'Ufro déi un all extern System gaange wier.

Näischt verléisst d'Gebai. Keng E-Mail gëtt geschéckt, keng Rechnung opgemaach, keng Bezuelung probéiert, keng Zeil geschriwwen. Extern Uruffe ginn als Intentiounen opgezeechent, mam Payload dee geschéckt gi wier, sou datt Dir kënnt gesinn ob d'Mapping richteg ass ier et zum Problem vun engem gëtt.

Simulatiounen ass wéi spu dir d'Fro beäntwert, déi d'Leit dovof ofhält, eng Automatiséierung unzeschalten: wat mécht se eigentlech?

Simulatioun · Bestellung 88 214Näischt geschéckt
  • 1Adress validéierenPassend. Hätt 6 Felder geschriwwen.
  • ?BedingungBestellung iwwer 1 000 zł? Neen — 289,00 zł. Kuerze Wee geholl.
  • 3RechnungHätt POST un d'Fakturatiounssystem geschéckt. Payload komplett ugewisen.
  • !Hei erfaasstMwSt-Saz aus dem falsche Feld geholl. An enger Simulatioun fonnt, amplaz am Comptable sengem Postkuerf.

Geschéckt: näischtBerechent: näischt

E Laf geet op der Versioun weider, op där en agaangen ass

Eng Ännerung ze publizéieren beaflosst d'Läif net, déi schonn dran sinn. All Laf ass un d'Versioun gebonnen, op där en ugefaangen huet, a mécht déi Versioun fäerdeg, esou laang en dauert a sou vill dir an der Tëschenzäit ëmschreift.

Sou kanns du e Workflow ëmstrukturéieren, während zéngdausend Leit hallef dran sinn, an all eenzele vun hinnen mécht de Flow fäerdeg, deen him versprach gouf. D'Alternativ — den Design, bei deem de ganze weidere Wee beim Agank materialiséiert gëtt — ass de Grond, firwat d'Änneren vun enger lieweger Automatiséierung an den meisten Tools geféierlech wierkt. Hei ass et eppes Alldeegleches.

Nei Läif kréien d'nei Versioun vum Moment un, wou dir se publizéiers. Op där Versioun e Laf ass, steet um Laf selwer, sou datt eng Fro iwwert d'Verhale am Mäerz am September eng Äntwert huet.

Änneren während dem Live-Bedriffv4 → v5
  • 1Virdrun2 918 Läif ënnerwee, all op v4. E puer an engem zweedäegche Waartezoustand.
  • 2v5 publizéierenZwee Schrëtt ëmgeuerdnet, eng Message ëmgeschriwwen.
  • 3DuernoDéi 2 918 maachen v4 fäerdeg. Alles wat vun 11:40 un ufänkt, leeft op v5.
  • §Niemandhuet d'Hallef vun engem Workflow an d'Hallef vun engem aneren kritt.

Versioun bei all Laf festgehalenAl Versioune bleiwen erhale

Nei-Versich, déi net duebel verschécke kënnen

E Schrëtt ass eng reng Funktioun vu sengen Inputen, a seng Effekter gi zesumme mam Weidergank vum Laf op de nächste Schrëtt festgeschriwwen. Et gëtt keng Fënster, an där d'Message schonn eraus ass, de Laf et awer net weess.

Dat ass de ganze Trick, an et ass eng strukturell Eegeschaft amplaz e Verspriechen. E Worker, deen mëttlerweil am Schrëtt ëmbruecht gëtt — en Deploy, e Crash, eng Maschin déi verschwënnt — léisst de Laf genee do, wou en war. En anere Worker hëlt en op a mécht de Schrëtt nach eng Kéier. Well den Effekt an de Weidergank als eent festgeschriwwe ginn, ass et entweder béid geschitt oder näischt.

Ausgänge Urope un Systemer, déi Idempotenz-Schlësselen ënnerstëtzen, hunn ee mat, ofgeleet aus dem Laf an dem Schrëtt, sou datt déi aner Säit d'Widderhuelung och erkennt.

Worker beim Verschécke ëmbruechtErholl
  • 1Schrëtt 5 fänkt unVerschéck d'Versandnotiz.
  • ✕Worker stierftDeploy. Et war näischt festgeschriwwe ginn.
  • 2OpgehollEn anere Worker fënnt de Laf nach ëmmer op Schrëtt 5.
  • ✓Eemol geschécktDe Client huet eng E-Mail kritt, net zwou.

Effekter gi mam Weidergank festgeschriwwenIdempotenz-Schlëssel pro Laf a Schrëtt

E Log, dee fir e Mënsch geschriwwen ass

All Laf, all Schrëtt, de Branche deen hien geholl huet an de Wäert deen et decidéiert huet. Zäite pro Schrëtt. D'Requête an d'Äntwert vun all externem Uuffruch, mat Zouganksdaten geschwaart. D'Versioun op där de Laf gelaf ass. Wou e Laf waart a bis wéini.

Wann iergendeen froet, wat mat der Bestellung vum Vierzéngte geschitt ass, gëtt et eng Äntwert, an et dauert eng Minutt fir se ze fannen, statt en Nomëtteg dräi Logbicher mateneen ze vergläichen.

Läif déi schéitern, sammelen sech op engem Plaz mat dem Grond gruppéiert, sou datt „véierzeg-an-een Schéiterungen iwwer Nuecht“ sech zu „ee Liwwerant huet 503 fir néng Minutten zréckginn“ opléist, statt véierzeg-an-een eenzel Ënnersichungen.

Iwwer Nuecht, gruppéiert41 Schéiterungen
  • 1Ee GrondD'Liwwerant-API huet 503 tëscht 02:41 an 02:50 zréckginn.
  • 2Wat geschitt assAll 41 goufen nees probéiert; 39 hunn beim zweete Versuch funktionéiert.
  • 3Iwwreg bliwwenZwee sinn gestoppt a waarden op e Mënsch. Béid sinn opgelëscht mat der Zeil déi schéitert ass.
  • §Net véierzeg-an-eenËnnersichungen. Eng, an eng Decisioun iwwer zwee Enregistrements.

Zouganksdaten geschwaartVersioun opgezeechent

Wat mir net behaapten

Mir veröffentlechen keng Availabilityszuel op enger Marketing-Säit, well eng Zuel ouni Moëssfenster an ouni Definitioun vun „erreechbar“ just Dekoratioun ass. Wann Dir eng vertraglech braucht, froen, a mir schwätzen iwwer wat mir wierklech zesagen kënnen.

Mir kënnen och d'API vun engem aneren net zouverlässeg maachen. Wann e Provider ausfält, waart e Workflow deen dovun ofhänkt, probéiert et nees a stoppt schliisslech mat engem kloren Grond. Wat mir verspriechen kënnen ass, datt de Feeler siichtbar ass, datt e näischt korruptéiert, an datt d'Weiderféieren d'Message net e zweeten Mol schéckt.

Iwwer Waarden: e Laf deen zwee Deeg waart ass e wake_at um Laf, net e Job deen an enger Queue leit. Dowéinst kann e Workflow honnertdausend Läif an enger dräi-Wochen-Waart halen ouni datt et eppes kascht, an dowéinst muss Dir iwwer d'Zuel vun de Läif déi momentan waarden net nokucken.

De Laf u deen Dir ni denkt ass deen, dee funktionéiert huet.