Amallar we Dolandyryş → Awtomatlaşdyrylan workflow
Awtomatlaşdyrylan workflow
1) Bu näme üçin zerur?
Awtomatlaşdyrylan workflow el amallaryny azaldýar, "pikirden pula çenli wagty" çaltlaşdyrýar we ýalňyşlyk töwekgelçiligini azaldýar. iGaming/fintech-de bu goýumlar/netijeler, KYC/AML, bonuslary/jekpotlary dolandyrmak, mazmun täzelenmeleri, waka-reaksiýalar we arka-ofis meseleleri üçin möhümdir.
Maksatlar:- Triggerden netijä çenli durnukly, aç-açan syn edilýän prosesler.
- Prosesiň SLO tarapyndan öňünden aýdylýan iň az el ädimleri.
- Ýalňyşlyklara gözegçilik etmek: retralar, öwezini dolýan hereketler, aýdyň eskalasiýa.
- Wakalar we ýükler boýunça "tupanlar" we dublikatlar bolmazdan ulalmak.
2) Esasy terminologiýa
Workflow (WF): iş netijesini gazanmak üçin ädimler zynjyry (tasks).
Orkestr: merkezi koordinator ädimleri we olaryň tertibini dolandyrýar.
Horeografiýa: ädimler wakalara reaksiýa bildirýär, "merkezi beýni" ýok.
Kompensasiýa: bölekleýin şowsuzlyk ýüze çykan halatynda ters hereketler (saglar).
HITL (Human-in-the-loop): WF-iň içinde dolandyrylýan "el" çözgütleri.
Prosesiň SLO: belli bir WF-ni tamamlamagyň/gazanmagyň maksatly wagty (mysal üçin, "goýumlaryň 95% -i ≤ 3 sek").
3) Nirede ulanmaly (mysallar)
Töleg görnüşleri: goýumlar, antifrod, buhgalteriýa posting, habarnamalar.
KYC/AML: resminamalary ýygnamak, üpjün edijiler tarapyndan barlaglar, komplayensde eskalasiýa.
Mazmuny/çäkleri dolandyrmak: oýunlary, kwotalary, geo-düzgünleri çap etmek.
Bonuslar/jekpotlar: hasaplamalar, tutup galmalar, şertleri hasaplamak, tölegler.
Hadysalar: awto-diagnostika, gysgaldylan çek-listler, aragatnaşyklar.
Maglumatlar/ETL: hasabatlary düşürmek, reconciliation, arhiwlemek.
4) Orkestr vs Horeografiýa
Orkestr: şahalaryň çylşyrymly logikasy, berk SLO, aç-açan möhletler/wagtlar, işewürlik üçin wizual "proses kartasy" zerur bolanda laýyk gelýär.
Koreografiýa - haçan: ýokary waka, gowşak baglanyşyk, bir hadysanyň garaşsyz sarp edijileri köp.
Gibrid: uzak ömürli saga orkestrator tarapyndan dolandyrylýar, ýerli reaksiýalar bolsa wakalar arkaly ýerine ýetirilýär.
5) Binagärlik ýörelgeleri
Idempotentlik: Her ädim howpsuz gaýtalanmalydyr (idempotency-key, message-ID baby).
Açyk wagtlar we retralar: backoff + jitter, synanyşyk çäkleri, retralar diňe howpsuz ýalňyşlyklar üçin.
Kompensasiýa (saglar): bölekleýin şowsuzlyk ýüze çykan halatynda zynjyr boýunça yza gaýdyp gelmek.
Ädimleriň izolýasiýasy: bulkhead (daşarky akymlara aýratyn howuzlar/çäklendirmeler).
Şertnamalar: Ähli daşarky jaňlar üçin OpenAPI/AsyncAPI, CDC synaglary.
WF wersiýasy: köne ýagdaýlaryň "köpçülikleýin" ýykylmazdan giriş/çykyş maglumatlarynyň shemasyny üýtgetmek.
6) Wakalaryň we triggerleriň nusgasy
Trigger görnüşleri:- domen wakasy ('deposit. requested`),
- meýilnama (cron),
- el bilen başlamak (operator/sapport),
- alertden signal (waka-awto-workflow).
- Kontekst: 'trace _ id', 'workflow _ instance _ id', ulanyjy/sebit, fiziki baýlyklaryň görnüşi.
- Girişdäki arzan süzgüçler: irki tassyklama we iki gezek kesmek.
7) Ädimleriň dizaýny (tasks)
Her ädim beýan edilýär: giriş, çykyş, SLO, wagt, synanyşyklar, retraýlaryň şertleri, öwezini dolmak, hukuklar/syrlar.
Ädimiň psevdo-beýany:
task: call_psp input: { user_id, amount, currency, idempotency_key }
timeout: 200ms retries:
max: 2 on: [5xx, connect_error]
backoff: exponential jitter: true compensation: reverse_authorization secrets: [PSP_TOKEN]
sla: p99 <= 300ms
8) Kompensasiýa we saga
Lokal amal + waka: "intent saklamak → wakany çap etmek".
Kompensasiýa: ygtyýarlylygyň ýatyrylmagy, bonusyň yzyna gaýtarylmagy, balansyň gaýtadan hasaplanylmagy, biletiň ýapylmagy.
Öwezini dolmagyň deňhukuklylygy: gaýtalanýan ýatyryş inwariantlary bozmaly däldir.
9) Howpsuzlyk we syrlar
KMS/Secrets Manager: bellikleri saklamak, aýlanmak, rollara girmek.
Iň az artykmaçlyklar: WF hereketlendirijisine birmeňzeş zerur satyn alyşlar berilýär.
Webhuklaryň/kolbekleriň goly: HMAC/JWS, taýmstempiň barlagy.
Maglumat syýasaty: PII-ni bloglarda/yzarlamalarda gizlemek, şifrlemek.
10) Synlamak we SLO
Prosesiň ölçegleri: 'workflow _ started/completed', 'success _ rate', 'aborted', 'mean/p95/p99 duration', 'asylan', 'dead letter'.
Ädimleriň ölçegleri: 'task _ latency', 'error _ rate', 'retry _ count', 'open _ circuit', 'cost _ per _ 1k _ calls'.
Yşyklandyryş: her ädimde span, bellikler 'workflow. name`, `step`, `attempt`.
SLO: mysal üçin "95% goýumlar ≤ 3 sek, 99% ≤ 5 sek; abort ≤ 0. 3 %/gün".
Daşbordlar: ädimleriň ýylylyk kartasy, "dar ýerler", garaşlylyk kartalary.
11) Kontur adam (HITL)
Kriteriýalar: jedelli ýagdaýlar (risk/AML), uly tölegleriň el bilen tassyklanylmagy.
Möhletler: çözgüt, ýatlatma/eskalasiýa garaşmagyň wagty.
Audit: kim/haçan/näme karar berdi, esas, bilet bilen baglanyşyk.
12) Üýtgetmeleri dolandyrmak we goýbermek
Workflow wersiýalary: 'v1' we 'v2' paralel; häkimiýetleriň göçmegi mümkin däl - köne zatlary tebigy usulda tamamlaň, täze traffigi - 'v2' -de tamamlaň.
Kanar traffigi: 1% → 10% → 100%, metrikleri deňeşdirmek 'success/p95/abort'.
Aýratynlyklar: ädimiň/şahanyň öňki ýerine ýetirilişine çalt yza gaýdyp gelmek.
CDC/şertnamalar: ädimlerdäki üýtgeşmeler sarp edijileri/üpjün edijileri bozmaz ýaly CI-de gate.
13) Synag
Ädimleriň birligi: oňyn/negatiw + idempotentlik.
Contract tests: mok/stage üpjün edijisine garşy.
WF-simulýasiýa: happy-path + timeouts, 4xx/5xx, "haýal üpjün ediji", wakalaryň ýitmegi, bölekleýin ýalňyşlyklar.
Oýun-günler: şowsuzlyklary sanjym etmek (PSP/KYC ýykylmagy, nobatlar, ýapyk arakesme).
Replay: migrasiýalary barlamak üçin taryhy wakalary köpeltmek.
14) Hadysalar we awto-reaksiýalar
Awto-workflow hadysasy: metrikleri ýygnamak, daşarky akymlary barlamak, habarnamalar, workaround taýýarlamak (üpjün edijini üýtgetmek, pese gaçmak).
Runbook ädimleri: el bilen abort/force-complete rugsat berlende asylan ýagdaýlary nädip "açmaly".
15) Çykdajylary dolandyrmak
Kwotalar we "soft-cap": gymmat bahaly ädimlere/üpjün edijilere çäklendirmeler.
Keş/dedup: Gerek bolmasa daşarky jaňlary gaýtalamaň.
Hasabatlar: 'cost _ per _ 1k _ workflows', WF görnüşleri boýunça "üstünlik bahasy".
16) Workflow mini şablon (psevdo-YAML)
workflow: deposit_v1 trigger:
event: deposit. requested filters: [amount > 0, currency in [USD,EUR,TRY]]
sla:
p95_ms: 3000 abort_rate_daily: 0. 3%
steps:
- name: reserve_funds timeout_ms: 150 retries: {max: 2, on: [5xx, connect_error], backoff: exponential, jitter: true}
compensation: release_reserve
- name: call_psp timeout_ms: 200 retries: {max: 2, on: [5xx, connect_error]}
circuit_breaker: {error_rate: 0. 05, window_s: 10, open_s: 30}
- name: post_ledger type: async topic: ledger. post
- name: notify_user channel: push hitl:
when: amount > 10000 or risk_score > 0. 8 timeout_m: 30 escalate_to: "compliance@oncall"
observability:
emit_metrics: true trace: true security:
secrets: [PSP_TOKEN, PUSH_API_KEY]
17) Retraýlaryň we wagtlaryň syýasaty (teklipler)
Ädimiň wagty = onuň gizlinlik býudjetiniň 70-80%.
Retraýalar ≤ 2-3, diňe idempotent amallary we tor şowsuzlyklary üçin.
Jitter hökmanydyr; follbeksiz dar ýerleriň taýmautlaryna retraýlary gadagan etmek.
Kompensasiýa - aýry-aýry ädimler ýaly, olar hem idempotentdir.
18) Daşbordlar (iň az)
WF Overview: uçuşlar/üstünlik/abort, p95/p99 dowamlylygy, wisa/atalar.
Step Drilldown: Iň pes/ýalňyş ädimler, retralar, açyk arakesmeler.
Provider Panel: gidýän p95/error-rate/kwotalar/bahasy.
HITL Board: "çözgütlere garaşýarlar", möhletler, SLA gabat gelýär.
19) Girizmegiň çek-sanawy
- Esasy WF kartoçkasy we eýeleri (on-call, chat, repo).
- Ädimleriň beýany: giriş/çykyş, SLO, wagt, retra, kompensasiýa, syrlar.
- OpenAPI/AsyncAPI + CDC şertnamalary.
- Girelgede we ädimlerde idempotentlik/dedup.
- Daşbordlar, yzarlamalar, aladalar (SLO prosesi we ädimler boýunça).
- Kanarya + WF neşirleri üçin ficheflaglar.
- Runbook: asylan/bölekleýin ýerine ýetirilen WF-leri nädip "bejermeli".
- Zaýalanmak meýilnamasy: alternatiw üpjün edijiler, "agyr" şahalary öçürmek.
- Syr/giriş/audit syýasaty.
- Game-days/xaoc-ssenariler her sprinte bir gezek.
20) Alertleriň (pikirleriň) mysallary
ALERT WorkflowSLOBreached
IF workflow_p95_duration_ms{name="deposit_v1"} > 3000 FOR 15m
LABELS {severity="critical", team="payments"}
ALERT WorkflowAbortRateHigh
IF rate(workflow_aborted_total{name="deposit_v1"}[30m]) > 0. 005
LABELS {severity="warning", team="payments"}
ALERT StepRetryStorm
IF step_retry_count{name="call_psp"} > 2 baseline_1w FOR 10m
LABELS {severity="warning", team="integrations"}
ALERT StuckInstances
IF workflow_in_progress_age_p95_m{name="kyc_v2"} > 60
LABELS {severity="warning", team="risk"}
21) Anti-patternler
100 ädim we berk baglanyşyk bilen "Uly monolit WF" - kyn we ses çykarýar.
Indempotent däl amallar üçin retraýlar (goşa hasapdan çykarmak/hasaplap ýazmak).
Ulanyjynyň haýyşynyň "ömründen uzyn" wagtlary → asma we "zombi".
Öwezini dolmagyň ýoklugy → el bilen düzedişler we uzyn postmortemler.
WF wersiýasy ýok → neşirler köne ýagdaýlary bozýar.
Aýlanmazdan we auditsiz konwensiýalaryň/üýtgeýjileriň içindäki syrlar.
22) Workflow hiliniň KPI-si
WF görnüşleri boýunça Success rate we Abort rate.
p95/p99 ädimleriň we prosesiň dowamlylygy.
Prosesleriň hadysalary boýunça MTTD/MTTR.
Retry storm count/aý (maksat → 0).
1k WF bahasy we "üstünlik bahasy".
Awtomatlaşdyrmagyň paýy: HITL-siz ýagdaýlaryň%.
23) Çalt başlamak (defoltlar)
3-5 möhüm WF-den başlaň (goýum, pul çykarmak, KYC).
Uzak ömürli saga çalyň; lokal reaksiýalar - wakalar.
Ädimiň wagty ≤ býujetiň 80%; retrailer ≤ 2 s backoff + jitter.
Kompensasiýa ýazmaça kesgitlenildi we synag edildi.
Deňeşdirme tagtasy bilen 5-10% traffigi açyň.
Her bir WF - SLO-nyň eýesi, runbook we alertleri.
24) FAQ
Q: Näme saýlamaly: orkestrator ýa-da wakalar?
A: Eger görkeziş kartasy, möhletler we uzyn saga gerek bolsa - orkestrator. Wakalara ýönekeý reaksiýalar we köp sarp edijiler agdyklyk etse - horeografiýa. Köplenç iň gowy wariant gibriddir.
Q: Dublikatlardan nädip gaça durmaly?
A: WF girelgesinde idempotency-key, 'message _ id' we 'seen-events' -ni saklamak. Ädimler - idempotent.
Q: Kontur adam gerekmi?
A: Hawa, jedelli/gymmat bahaly ýagdaýlar üçin. Emma has gowy awtomatlaşdyryş we düzgünler arkaly HITL-iň paýyny ölçäň we azaldyň.