castomFLOW
Отворете castomFLOW

Извршувања на кои можете да верувате

Никој не забележува автоматизација додека не испрати нешто двапати

Потоа сите забележуваат. Четирите механизми на оваа страница постојат затоа што неуспесите на овој вид софтвер се секогаш истите четири неуспеси, и сите се избегливи по дизајн, а не по внимание.

Симулирајте пред да објавите

Поминете вистински запис низ работен тек што е исклучен, и прочитајте точно што би се случило: патеката што е преземена, секоја вредност на секој чекор, формулацијата на секоја порака и барањето што би отишло до секој надворешен систем.

Ништо не го напушта објектот. Не се испраќа е-пошта, не се подигнува фактура, не се обидува наплата, не се пишува ред. Надворешните повици се евидентираат како намери, со товарот што би бил испратен, така што можете да видите дали мапирањето е точно пред да стане нечий проблем.

Симулациите се начинот да одговорите на прашањето што ги спречува луѓето да вклучат автоматизација: што всушност ќе направи ова?

Симулација · нарачка 88 214Нишо не е испратено
  • 1Проверка на адресаСовпадна. Ќе беа напишани 6 полиња.
  • ?УсловНарачка над 1 000 zł? Не — 289,00 zł. Земен е краткиот пат.
  • 3ФактураЌе праќа POST до системот за фактурирање. Полезниот товар е прикажан во целост.
  • !Фатено тукаСтапката на ДДВ е мапирана од погрешното поле. Пронајдена во симулација, а не во санката на сметководител.

Пратено: ништоНаплатено: ништо

Секој тек оди по верзијата на која влегол

Објавувањето промена на работниот тек не ги допира тековите што веќе се во него. Секој тек е врзан за верзијата на која започнал и ја завршува таа верзија, колку и да трае и колку и да препишувате во меѓувреме.

Така можете да го реструктуирате работниот тек додека десет илјади луѓе се на половина од него, и секој од нив ќе го заврши текот што му беше ветен. Алтернативата — дизајнот каде целиот пат надолу се материјализува при влез — е причината уредувањето на жива автоматизација да изгледа опасно во повеќето алатки. Тука е сосема обично.

Новите текови ја добиваат новата верзија од моментот на објавување. На која верзија е текот е запишано на самиот тек, така прашањето за однесувањето во март има одговор во септември.

Уредување додека е во живоv4 → v5
  • 1Пред2 918 текови во тек, сите на v4. Некои чекаат два дена.
  • 2Објави v5Два чекора преуредени, една порака препишана.
  • 3ПотоаТие 2 918 ја завршуваат v4. Сè што започнува од 11:40 работи на v5.
  • §Никојне прими половина од еден работен тек и половина од друг.

Верзијата е запишана на секој текСтарите верзии се задржани

Повторни обиди што не можат да праќаат двапати

Чекорот е чиста функција на своите влезови, а неговите ефекти се извршуваат заедно со самиот напредок на текот кон следниот чекор. Нема прозорец во кој пораката е испратена, а текот не го знае тоа.

Тоа е целиот трик, и тоа е структурно својство, а не ветување. Работник убиен на половина од чекорот — деплој, пад, машина што исчезнува — го остава текот точно таму каде што беше. Друг работник го превзема и го повторува чекорот. Бидејќи ефектот и напредокот се извршуваат како едно, или се случиле двете, или ниедно.

Одлезните повици до системи што поддржуваат клучеви за идемпотентност носат таков клуч, изведен од текот и чекорот, така другата страна исто така да го препознае повторувањето.

Работник убиен на половина од праќањетоОпоравено
  • 1Чекор 5 започнуваПраќање на известувањето за испорака.
  • ✕Работникот умираДеплој. Ништо не беше извршено.
  • 2ПревземеноДруг работник го наоѓа текот сè уште на чекор 5.
  • ✓Испратено еднашКлиентот прими една е-пошта, не два.

Ефектите се извршуваат заедно со напредокотКлуч за идемпотентност за секој тек и чекор

Дневник напишан да го чита човек

Секој тек, секој чекор, гранката што ја зел и вредноста што одлучи. Времиња по чекор. Барањето и одговорот на секој надворешен повик, со зацрнени акредитиви. Верзијата на која бил текот. Каде чека текот и до кога.

Кога некој ќе праша што се случи со нарачката ставена на четиринаесетти, има одговор, и неговото наоѓање трае минута, а не попладне на поврзување дневници од три системи.

Неуспешните извршувања се собираат на едно место со групирана причина, па „четириесет и еден неуспех преку ноќ“ се разрешува во „еден добавувач враќаше 503 девет минути“, а не четириесет и едно посебни истражувања.

Преку ноќ, групирано41 неуспех
  • 1Една причинаAPI-то на добавувачот враќаше 503 помеѓу 02:41 и 02:50.
  • 2Што се случиСите 41 беа повторени; 39 успеаја на вториот обид.
  • 3ОстанатоДва застанаа и чекаат човек. Двата се наведени со редот што не успеа.
  • §Не четириесет и едноистражувања. Едно, и одлука за два записа.

Акредитивите се отстранетиВерзијата е евидентирана

Што не тврдиме

Не објавуваме бројка за достапност на маркетинг страница, бидејќи број без мерен период и дефиниција за „достапно“ е декорација. Ако ви треба договорно, побарајте и ќе разговараме за тоа на што навистина можеме да се обврземе.

Исто така не можеме да направиме нечие туѓо API да биде сигурно. Ако добавувачот е надвор од услуга, работниот тек што зависи од него чека, повторува и на крајот застанува со јасна причина. Она што можеме да го ветиме е дека неуспехот е видлив, дека не расипува ништо и дека продолжувањето не ја праќа пораката втор пат.

За чекањата: извршување што чека два дена е wake_at на извршувањето, а не задача што седи во редица. Затоа еден работен тек може да држи сто илјади извршувања во чекање од три недели без ништо од тоа да чини, и затоа бројот на моментално чекачки извршувања не е нешто за кое треба да мислите.

Извршувањето за кое никогаш не мислите е она што успеа.