Əməliyyat və İdarəetmə → Avtomatlaşdırılmış Workflow
Avtomatlaşdırılmış workflow
1) Niyə lazımdır
Avtomatlaşdırılmış workflow əl əməliyyatlarını azaldır, «fikirdən pula» sürətləndirir və səhv riskini azaldır. iGaming/fintech-də bu, depozitlər/nəticələr, KYC/AML, bonus/cekpot idarəetməsi, məzmun yeniləmələri, insident reaksiyaları və geri ofis vəzifələri üçün vacibdir.
Məqsədlər:- Davamlı, triggerdən nəticəyə qədər şəffaf müşahidə olunan proseslər.
- SLO prosesinin proqnozlaşdırıla bilən minimum əl addımları.
- Səhvlərə nəzarət: retralar, kompensasiya hərəkətləri, aydın eskalasiya.
- «Fırtına» və dublikatlar olmadan hadisələr və yük miqyaslı.
2) Əsas terminologiya
Workflow (WF): Biznes nəticələrinə nail olmaq üçün addımlar zənciri (tasks).
Orkestr: mərkəzi koordinator addımları və onların qaydasını idarə edir.
Xoreoqrafiya: addımlar hadisələrə reaksiya verir, «mərkəzi beyin» yoxdur.
Kompensasiya: qismən uğursuzluq (dastan) zamanı əks hərəkətlər.
HITL (Human-in-the-loop): WF daxilində idarə olunan «əl» həlləri.
SLO prosesi: konkret WF-nin məqsədyönlü tamamlanma/müvəffəqiyyət müddəti (məsələn, «95% depozitlər ≤ 3 san»).
3) Harada tətbiq etmək (nümunələr)
Ödəniş flow: depozitlər, antifrod, mühasibat uçotuna postinq, bildirişlər.
KYC/AML: sənədlərin toplanması, provayderlər tərəfindən yoxlanılması, komplayens eskalasiyası.
Məzmun/limitlərin idarə edilməsi: oyunların, kvotaların, geo-qaydaların dərc edilməsi.
Bonuslar/cekpotlar: hesablamalar, tutulmalar, şərtlərin hesablanması, ödənişlər.
Hadisələr: avto-diaqnostika, qısaldılmış yoxlama vərəqləri, kommunikasiyalar.
Data/ETL: hesabatların boşaldılması, reconciliation, arxivləşdirmə.
4) Orkestr vs Xoreoqrafiya
Orkestr: budaqların mürəkkəb məntiqi, ciddi SLO, aydın müddət/taymautlar, vizual «proses xəritəsi» biznesə lazım olduqda uyğundur.
Xoreoqrafiya - nə zaman: yüksək hadisə, zəif əlaqə, bir hadisənin bir çox müstəqil istehlakçısı.
Hibrid: uzun ömürlü dastanlar orkestrator tərəfindən idarə olunur və yerli reaksiyalar hadisələr vasitəsilə həyata keçirilir.
5) Memarlıq prinsipləri
İdempotentlik: Hər addım təhlükəsiz şəkildə təkrarlanmalıdır (idempotency-key, message-ID dedup).
Açıq vaxtlar və retrasiyalar: backoff + jitter, cəhd limitləri, yalnız təhlükəsiz səhvlər üçün retrasiyalar.
Kompensasiyalar (dastanlar): qismən uğursuzluq zamanı zəncir boyunca geri çəkilmə.
Adımların izolyasiyası: bulkhead (ayrı-ayrı hovuzlar/xarici downstream limitləri).
Müqavilələr: Bütün xarici zənglər üçün OpenAPI/AsyncAPI, CDC testləri.
WF versiyası: köhnə instansiyaların «kütləvi» düşməsi olmadan giriş/çıxış sxeminin dəyişdirilməsi.
6) Hadisə və trigger modeli
Trigger növləri:- domen hadisəsi ('deposit. requested`),
- cədvəl (cron),
- manual başlanğıc (operator/sapport),
- alertdən siqnal (hadisə-auto-workflow).
- Kontekst: korrelyasiya 'trace _ id', 'workflow _ instance _ id', istifadəçi/region, ficheflags versiyası.
- Girişdə ucuz filtrlər: erkən validasiya və kəsmə.
7) Addım dizaynı (tasks)
Hər addım təsvir olunur: giriş, çıxış, SLO, zaman, cəhdlər, retraj şərtləri, kompensasiya, hüquqlar/sirlər.
Addımın psevdo təsviri:
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) Kompensasiya və dastanlar
Yerli əməliyyat + hadisə: «intent saxlamaq → hadisə dərc».
Kompensasiya: avtorizasiyanın ləğvi, bonusun qaytarılması, balansın yenidən hesablanması, biletin bağlanması.
Kompensasiyanın idempotentliyi: yenidən ləğv edilməsi invariantları pozmamalıdır.
9) Təhlükəsizlik və sirləri
KMS/Secrets Manager: tokenlərin saxlanması, rotasiya, rollara daxil olmaq.
Ən kiçik imtiyazlar: WF mühərriki tam olaraq lazımi alıcılara verilir.
Vebhuk/kolbeklərin imzası: HMAC/JWS, TimeStampın yoxlanılması.
Məlumat siyasəti: log/tracking PII maskalama, şifrələmə.
10) Müşahidə və SLO
Proses metrikası: 'workflow _ started/completed', 'success _ rate', 'aborted', 'mean/p95/p99 duration', «asma» instants, «dead letter».
Addımların metrikası: 'task _ latency', 'error _ rate', 'retry _ count', 'open _ circuit', 'cost _ per _ 1k _ calls'.
Tracking: span hər addım, tags 'workflow. name`, `step`, `attempt`.
SLO: məsələn, "depozitlərin 95% -i ≤ 3 san, 99% -i ≤ 5 san; abort ≤ 0. 3 %/gün".
Daşbordlar: addımların istilik xəritəsi, «dar yerlər», asılılıq xəritələri.
11) Kontur adam (HITL)
Meyarlar: mübahisəli hallar (risk/AML), böyük ödənişlərin əl ilə təsdiqlənməsi.
Son tarixlər: həll gözləmə müddəti, xatırlatma/eskalasiya.
Audit: kim/nə vaxt/qərar, əsaslandırma, biletlə əlaqə.
12) Dəyişikliklər və buraxılışlar
Workflow versiyası: 'v1' və 'v2' paralel; instants miqrasiyası mümkün deyil - köhnə təbii tamamlayın, yeni trafik - 'v2'.
Kanarya trafiki: 1% → 10% → 100%, metrik müqayisə 'success/p95/abort'.
Ficheflagy: addım/filialın əvvəlki həyata keçirilməsinə sürətli geri dönüş.
CDC/müqavilələr: CI-də qapı, addımların dəyişməsi istehlakçıları/provayderləri pozmur.
13) Test
Vahid addımlar: müsbət/mənfi + idempotent.
Contract tests: mok/stage provayder qarşı.
WF simulyasiyaları: happy-path + timeouts, 4xx/5xx, «yavaş provayder», hadisə itkisi, qismən səhvlər.
Game-days: nasazlıqlar inyeksiyası (PSP/KYC düşməsi, gecikmə, qapalı fasilə).
Replay: miqrasiyaları yoxlamaq üçün tarixi hadisələrin təkrarlanması.
14) Hadisələr və avtomatik reaksiyalar
Avto-workflow hadisə: metrlərin toplanması, alt axınların yoxlanılması, bildirişlər, workaround hazırlanması (provayder keçid, deqradasiya).
Runbook-addımlar: əl abort/force-complete icazə verildikdə asılı instansiyaları necə «açmaq».
15) Xərclərin idarə edilməsi
Kvotalar və «soft-cap»: bahalı addımlar/provayderlər üçün limitlər.
Cache/Dedup: ehtiyac olmadan təkrar xarici zənglər etməyin.
Hesabatlar: 'cost _ per _ 1k _ workflows', WF növlərinə görə «uğur dəyəri».
16) Mini workflow ş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) Retraj və taymaut siyasətləri (tövsiyələr)
Addım vaxtı = 70-80% gizli büdcə.
Retrai ≤ 2-3, yalnız idempotent əməliyyatları və şəbəkə nasazlıqları üçün.
Jitter tələb olunur; fallback olmadan dar yerlərin taymautlarında retrajların qadağan edilməsi.
Kompensasiya - ayrı-ayrı addımlar kimi, həm də idempotent.
18) Daşbordlar (minimum)
WF Overview: başlanğıc/müvəffəqiyyət/abort, p95/p99 uzunluq, vis/babalar.
Step Drilldown: top yavaş/səhv addımlar, retras, açıq breakers.
Provider Panel: çıxış p95/error-rate/kvota/dəyəri.
HITL Board: «həll gözləyir», vaxt, SLA uyğunluq.
19) Giriş çek siyahısı
- Əsas WF kart və sahibləri (on-call, chat, repo).
- Addımların təsviri: giriş/çıxış, SLO, vaxtlar, retralar, kompensasiyalar, sirlər.
- OpenAPI/AsyncAPI + CDC müqavilələri.
- Giriş və addımlarda idempotentlik/dedup.
- Daşbordlar, izlər, alertlər (SLO prosesi və addımlar).
- Kanarya + WF buraxılışları üçün fitness.
- Runbook: necə «müalicə» asılı/qismən WF.
- Deqradasiya planı: alternativ provayderlər, «ağır» filialları söndürmək.
- Secret/Access/Audit siyasəti.
- Game-days/xaoc-scripts sprint bir dəfə.
20) Alert nümunələri (fikirlər)
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-nümunələr
100 + addım və sərt əlaqə ilə «Böyük monolit WF» - qırılır və səs-küy.
Qeyri-idempotent əməliyyatlar üçün retrajlar (ikiqat hesablama/hesablama).
Time «uzun ömür» istifadəçi sorğu → asılmaq və «zombi».
Kompensasiya yoxdur → əl düzəlişləri və uzun postmortemlər.
No WF versiyası → relizlər köhnə instansiyaları pozur.
Rotasiya və audit olmadan konfiqurasiyalar/dəyişənlər daxilində sirləri.
22) KPI keyfiyyətli workflow
WF növlərinə görə Success rate və Abort rate.
p95/p99 addım və proses müddəti.
MTTD/MTTR proses hadisələri.
Retry storm count/ay (hədəf → 0).
1k WF dəyəri və «uğur dəyəri».
Avtomatlaşdırma payı:% HITL olmayan hallar.
23) Sürətli başlanğıc (defolt)
3-5 kritik WF ilə başlayın (depozit, çek, KYC).
Uzun ömürlü dastanları orkestr edin; yerli reaksiyalar - hadisələr.
Addım vaxtı ≤ büdcənin 80% -i; retrailer ≤ 2 ilə backoff + jitter.
Kompensasiyalar yazılı və sınaqdan keçirilmişdir.
Dashboard müqayisə ilə 5-10% trafik kanareyka daxil edin.
Hər WF - SLO sahibi, runbook və alert.
24) FAQ
Q: Nə seçmək: orkestrator və ya hadisələr?
A: Əgər vizual xəritə, son tarix və uzun dastanlar lazımdırsa - orkestrator. Hadisələrə sadə reaksiyalar və bir çox istehlakçı üstünlük təşkil edirsə - xoreoqrafiya. Çox vaxt ən yaxşı seçim hibriddir.
S: Dublikatlardan necə qaçmaq olar?
A: WF girişində Idempotency-key, 'message _ id' dedupu və «seen-events» saxlama. Addımlar - idempotent.
Q: Kontur adam lazımdır?
A: Bəli, mübahisəli/bahalı hallar üçün. Lakin ən yaxşı avtomatlaşdırma və qaydalarla HITL payını ölçün və azaltın.