castomFLOW

Ajot, joihin voit luottaa

Kukaan ei huomaa automatiota, ennen kuin se lähettää jotain kahdesti

Sitten kaikki huomaavat. Tämän sivun neljä mekanismia ovat olemassa, koska tällaisen ohjelmiston virheet ovat aina samat neljä virhettä, ja ne kaikki on vältettävissä suunnittelulla, ei huolellisuudella.

Simuloi ennen julkaisua

Työnnä oikea tietue läpi työnkulun, joka on kytketty pois päältä, ja lue takaisin täsmälleen se, mitä tapahtuisi: kuljettu polku, jokainen arvo jokaisessa vaiheessa, jokaisen viestin sanamuoto ja pyyntö, joka lähtisi kuhunkin ulkoiseen järjestelmään.

Mikään ei lähde talosta. Ei lähetetä sähköpostia, ei luoda laskua, ei yritetä veloitusta, ei kirjoiteta riviä. Ulkoiset kutsut kirjataan aikeina, mukanaan hyötykuorma, joka olisi lähetetty, jotta näet ennen kuin siitä tulee jonkun ongelma, onko kartoitus oikein.

Simulaatiot ovat tapa vastata kysymykseen, joka estää ihmisiä kytkemästä automatiota päälle: mitä tämä oikeasti tekee?

Simulaatio · tilaus 88 214Mitä ei lähetetty
  • 1Vahvista osoiteOsuma. Olisimme kirjoittaneet 6 kenttää.
  • ?EhtoTilaus yli 1 000 zł? Ei — 289,00 zł. Lyhyt polku valittiin.
  • 3LaskuOlisimme lähettäneet POST-pyynnön laskutusjärjestelmään. Pyyntö runko näytetään kokonaan.
  • !Täällä siepattuALV-kanta luettiin väärästä kentästä. Se löydettiin simulaatiosta, ei kirjanpitäjän saapuneista viesteistä.

Lähetetty: ei mitäänVeloitettu: ei mitään

Suoritus kulkee sillä versiolla, jolle se saapui

Muutoksen julkaiseminen työnkulkuun ei koske jo sen sisällä olevia suorituksia. Jokainen suoritus on sidottu versioon, jolla se alkoi, ja se saa viimeistellä sen version, kesti se kuinka kauan tahansa ja vaikka muuttaisit sitä sillä välin kuinka paljon.

Voit siis rakentaa työnkulun uudelleen, vaikka kymmenentuhatta ihmistä olisi keskellä sitä, ja jokainen heistä saa valmiiksi lupauksensa mukaisen flow'n. Vaihtoehto — suunnittelu, jossa koko myöhempi polku materialisoidaan saapuessa — on syy siihen, että live-automatisaation muokkaaminen tuntuu useimmissa työkaluissa vaaralliselta. Tässä se on arkipäivää.

Uudet suoritukset saavat uuden version heti julkaisusta. Suorituksen versio kirjataan suorituksen tietoihin, joten maaliskuun käyttäytymistä koskevalla kysymyksellä on vastaus syyskuussa.

Muokkaaminen lennossav4 → v5
  • 1Ennen2 918 suoritusta kesken, kaikki v4:llä. Osa kaksipäiväisessä odotuksessa.
  • 2Julkaise v5Kaksi vaihetta järjestetty uudelleen, yksi viesti kirjoitettu uudelleen.
  • 3JälkeenNuo 2 918 saavat v4:n valmiiksi. Kaikki, jotka alkavat klo 11:40 tai sen jälkeen, ajavat v5:llä.
  • §Kukaan eisaanut puoletta yhtä työnkulkua ja puoletta toista.

Versio kirjattu jokaiselle suoritukselleVanhat versiot säilytetään

Uudelleenyritykset, jotka eivät läheteä kahta kertaa

Vaihe on puhdas funktio syötteistään, ja sen vaikutukset vahvistuvat yhdessä suorituksen etenemisen kanssa seuraavaan vaiheeseen. Ei ole ikkunaa, jossa viesti olisi jo lähtenyt mutta suoritus ei tiedä sitä.

Se on koko temppu, ja se on rakenteellinen ominaisuus, ei lupaus. Vaiheen keskellä tapettu worker — deploy, kaatuminen, katoava kone — jättää suorituksen täsmälleen siihen, missä se oli. Toinen worker poimii sen ja ajaa vaiheen uudelleen. Koska vaikutus ja eteneminen vahvistuvat yhtenä, joko molemmat tapahtuivat tai kumpikaan ei.

Lähtevät kutsut järjestelmiin, jotka tukevat idempotenssiavaimia, kantavat sellaisen, joka johdetaan suorituksesta ja vaiheesta, jotta vastapuolikin tunnistaa toiston.

Worker tapettiin lähetyksen keskelläPalautettu
  • 1Vaihe 5 alkaaLähetä toimitusilmoitus.
  • ✕Worker kuoleeDeploy. Mitään ei ollut vahvistettu.
  • 2Poimittu uudelleenToinen worker löytää suorituksen yhä vaiheessa 5.
  • ✓Lähetetty kerranAsiakas sai yhden sähköpostin, ei kahta.

Vaikutukset vahvistuvat etenemisen kanssaIdempotenssiavain per suoritus ja vaihe

Loki, joka on kirjoitettu ihmisen luettavaksi

Jokainen ajo, jokainen vaihe, haara jota se seurasi ja arvo joka sen päätti. Ajatukset vaiheittain. Jokaisen ulkoisen kutsun pyyntö ja vastaus, tunnisteet poistettuina. Versio, jolla ajo oli. Missä ajo odottaa ja mihin asti.

Kun joku kysyy, mitä neljäntenä tehdylle tilaukselle tapahtui, vastaus löytyy minuutissa eikä iltapäivän urakasta, jossa kolmen järjestelmän lokeja yhdistellään.

Epäonnistuneet ajot kerääntyvät yhteen paikkaan syy ryhmiteltynä, joten "neljäkymmentäyksi epäonnistumista yön aikana" ratkeaa muotoon "yksi toimittaja palautti 503:n yhdeksän minuutin ajan" eikä neljäkymmentäyhteen erilliseen tutkimukseen.

Yön aikana, ryhmiteltynä41 epäonnistumista
  • 1Yksi syyToimittajan API palautti 503:n klo 02:41–02:50.
  • 2Mitä tapahtuiKaikki 41 uudelleenyritystä; 39 onnistui toisella yrityksellä.
  • 3JäljelläKaksi pysähtyi ja odottaa ihmistä. Molemmat on listattu epäonnistuneen rivin kanssa.
  • §Ei neljäkymmentäyhtätutkimusta. Yksi, ja päätös kahdesta tietueesta.

Tunnisteet poistettuVersio tallennettu

Mitä me emme väitä

Emme julkaise käytettävyyslukua markkinointisivulla, koska luku ilman mittausikkunaa ja määritelmää siitä, mikä on "käytettävissä", on koristetta. Jos tarvitset sellaisen sopimusehtona, kysy, ja keskustelemme siitä, mihin voimme oikeasti sitoutua.

Emme myöskään voi tehdä jonkun muun API:sta luotettavaa. Jos palveluntarjoaja on alhaalla, siitä riippuva työnkulku odottaa, yrittää uudelleen ja lopulta pysähtyy selkeällä syyllä. Sen voimme luvata, että epäonnistuminen näkyy, ettei se riko mitään ja että jatkaminen ei lähetä viestiä toista kertaa.

Odotuksista: kaksi päivää odottava ajo on ajon wake_at, ei jonossa istuva työ. Siksi työnkulku voi pitää satatuhatta ajoa kolmen viikon odotuksessa ilman että mikään siitä maksaa mitään, ja siksi odottavien ajojen lukumäärä ei ole asia jota sinun tarvitsee miettiä.

Ajo, jota et koskaan mieti, on se joka onnistui.