GH GambleHub

Ə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.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.