Операциялар жана башкаруу → Автоматташтырылган Workflow
Автоматташтырылган Workflow
1) Эмне үчүн керек
Автоматташтырылган workflow кол операцияларын азайтып, "идеядан акчага чейинки убакытты" тездетип, ката кетирүү коркунучун азайтат. iGaming/Fintech депозиттер/корутундулар, KYC/AML, бонустарды/джекпотторду башкаруу, мазмунду жаңыртуу, инцидент-жооп жана бэк-кеңсе милдеттери үчүн маанилүү болуп саналат.
Максаттары:- Туруктуу, ачык-айкын байкалган процесстер триггерден натыйжага чейин.
- Минималдуу кол кадамдар, алдын ала SLO жараяны.
- Каталарды көзөмөлдөө: ретрациялар, компенсациялык аракеттер, так эскалациялар.
- "Бороон" жана кайталоо жок окуялар жана жүк боюнча масштабдоо.
2) Базалык терминология
Workflow (WF): бизнес натыйжаларга жетүү үчүн кадам чынжыр (tasks).
Оркестр: борбордук координатор кадамдарды жана алардын тартибин башкарат.
Хореография: кадамдар окуяларга жооп берет, "борбордук мээ" жок.
Компенсация: жарым-жартылай ийгиликсиз болгон учурда тескери аракеттер (сагалар).
HITL (Human-in-the-loop): WF ичинде башкарылуучу "кол" чечимдер.
SLO жараяны: конкреттүү WF аяктоо/ийгиликке максаттуу убакыт (мисалы, "депозиттердин 95% ≤ 3 сек").
3) Кайда колдонуу керек (мисалдар)
Төлөм флоу: депозиттер, антифрод, бухгалтердик эсепке постинг, билдирмелер.
KYC/AML: документтерди чогултуу, провайдерлер тарабынан текшерүү, комплаенс боюнча эскалация.
Мазмунду/лимиттерди башкаруу: оюндарды, квоталарды, гео-эрежелерди жарыялоо.
Бонустар/джекпоттор: эсептөөлөр, чегерүүлөр, шарттарды эсептөө, төлөмдөр.
Инциденттер: авто-диагностика, кыскартылган чек-баракчалар, коммуникациялар.
Маалыматтар/ETL: отчетторду жүктөө, reconciliation, архивдөө.
4) Оркестр vs Хореография
Оркестрге ылайыктуу учурда: бутактардын татаал логикасы, катуу SLO, айкын мөөнөт/таймауттар, визуалдык "процесс картасы" бизнес үчүн керек.
Хореография - качан: жогорку окуя, алсыз байланыш, көп көз карандысыз керектөөчүлөр бир окуя.
Гибрид: узакка созулган дастандар оркестратор тарабынан башкарылат, ал эми жергиликтүү реакциялар окуялар аркылуу аткарылат.
5) Архитектуралык принциптер
Демпотенттик: ар бир кадам коопсуз кайталанышы керек (idempotency-key, дедуп боюнча message-ID).
Ачык таймауттар жана ретрациялар: backoff + життер, аракет чектери, коопсуз каталар үчүн гана ретрациялар.
Компенсация (сагалар): жарым-жартылай ийгиликсиз болгон учурда чынжыр боюнча артка чегинүү.
Изоляция кадамдар: bulkhead (жеке бассейндер/тышкы даунстрим лимиттери).
Келишимдер: OpenAPI/AsyncAPI бардык тышкы чалуулар үчүн, CDC тесттер.
WF Version: эски учурларда "массалык" күзүндө жок киргизүү/чыгаруу схемасын өзгөртүү.
6) окуялар жана триггерлер модели
Триггерлердин түрлөрү:- домен окуясы ('deposit. requested`),
- тартиби (cron),
- кол менен ишке киргизүү (оператор/саппорт),
- сигнал (окуя-auto-workflow).
- Контекст: корреляциялык 'trace _ id', 'workflow _ instance _ id', колдонуучу/аймак, фичефлагдардын версиясы.
- Арзан кириш чыпкалар: эрте validation жана эки кесип.
7) Кадам Дизайн (tasks)
Ар бир кадам сүрөттөлгөн: кирүү, чыгуу, SLO, убакыт, аракет, retrains шарттары, ордун толтуруу, укуктар/сырлар.
Кадамдын псевдо-сүрөттөлүшү:
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) Компенсация жана дастан
Жергиликтүү транзакция + окуя: "intent сактоо → окуяны жарыялоо".
Компенсация: авторизацияны жокко чыгаруу, бонусту кайтаруу, балансты кайра эсептөө, билетти жабуу.
Компенсациянын демпотенттүүлүгү: кайра жокко чыгаруу инварианттарды бузбашы керек.
9) Коопсуздук жана сырлар
KMS/Secrets Manager: Токендерди сактоо, ротация, ролдорго жетүү.
Эң кичинекей артыкчылыктар: WF кыймылдаткычы туура сатып алуу менен берилет.
Кол Webhook/Colbekov: HMAC/JWS, Таймстемп текшерүү.
Маалымат саясаты: Логин/Tracking PII жашыруу, шифрлөө.
10) Байкоо жана SLO
Процесс көрсөткүчтөрү: 'workflow _ started/completed', 'success _ rate', 'aborted', 'mean/p95/p99 duration', "илинип турган" инстанциялар, "dead letter".
Кадамдардын метрикасы: 'task _ latency', 'error _ rate', 'retry _ count', 'open _ circuit', 'cost _ per _ 1k _ calls'.
Tracking: span ар бир кадам, tags 'workflow. name`, `step`, `attempt`.
SLO: Мисалы, "95% депозиттер ≤ 3 сек, 99% ≤ 5 сек; abort ≤ 0. 3 %/сутка".
Дашборддор: тепкичтердин жылуулук картасы, "тар жерлер", көз карандылык карталары.
11) Адам-контур (HITL)
Критерийлер: талаштуу учурлар (risk/AML), ири төлөмдөрдү кол менен ырастоо.
Мөөнөтү: чечим, эскертүүлөр/эскалация күтүү убактысы.
Аудит: ким/качан/эмне чечти, негиздөө, билети менен байланыш.
12) Өзгөрүүлөрдү башкаруу жана релиздер
Workflow версиялары: 'v1' жана 'v2' параллелдүү; инстанциялардын миграциясы мүмкүн эмес - эскилерин табигый жол менен бүтүрүңүз, жаңы трафик - 'v2'.
Канар жол: 1% → 10% → 100%, метрика салыштыруу 'success/p95/abort'.
Ficheflagy: кадам/бутактын мурунку ишке ашыруу боюнча тез артка.
CDC/келишимдер: кадам өзгөрүүлөр керектөөчүлөрдү/провайдерлерди сындырбайт үчүн CI дарбазасы.
13) сыноо
Бирдиктүү кадамдар: оң/терс + боштондук.
Contract tests: каршы мок/стейдж провайдер.
WF-симуляциялары: happy-path + timeouts, 4xx/5xx, "жай провайдер", окуяларды жоготуу, жарым-жартылай каталар.
Game-days: Injection кемчиликтер (PSP/KYC кулашы, кезек артта, жабык брейкер).
Replay: миграцияны текшерүү үчүн тарыхый окуяларды кайталоо.
14) Окуялар жана Auto-жооп
Auto Workflow окуя: метр чогултуу, downstream текшерүү, эскертмелер, workaround даярдоо (жөнөтүүчү которуу, деградация).
Runbook-кадамдар: Кол менен abort/force-complete уруксат берилгенде, илинип калган органдарды кантип "ачуу" керек.
15) Чыгымдарды башкаруу
Квоталар жана "soft-cap": кымбат кадамдарга/провайдерлерге лимиттер.
Кэш/дедуп: кереги жок кайталап тышкы чалууларды жасоого болбойт.
Отчеттор: 'cost _ per _ 1k _ workflows', WF түрлөрү боюнча "ийгиликтин наркы".
16) Mini Workflow шаблон (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) Ретра жана таймаут саясаты (сунуштар)
Убакыт кадам = 70-80% анын жашыруун бюджет.
Ретраи ≤ 2-3, гана idempotent иш жана тармактык каталар.
Джиттер милдеттүү; Таймаут тар жерлерде фоллбексиз ретрага тыюу салуу.
Компенсация - өзүнчө кадамдар сыяктуу, ошондой эле демпотенттик.
18) Dashbord (минималдуу)
WF Overview: баштоо/ийгилик/аборт, p95/p99 узактыгы, висы/чоң ата.
Step Drilldown: жогорку жай/ката кадамдар, retry, ачык брейкер.
Provider Panel: чыгуучу p95/error-rate/квота/наркы.
HITL Board: "чечим күтүп", мөөнөттөрү, SLA комплаенс.
19) Киргизүү чек-тизмеси
- Карта негизги WF жана ээлери (on-call, чат, репо).
- Кадамдардын сүрөттөлүшү: кирүү/чыгуу, SLO, таймауттар, ретрациялар, компенсациялар, сырлар.
- OpenAPI/AsyncAPI + CDC келишимдери.
- Кире бериште жана кадамдарда Idempotentity/дедуп.
- Dashboard, Tracking, Алерт (SLO жараяны жана кадам).
- Канарейка + WF релиздери үчүн phicheflages.
- Runbook: кантип "мамиле" илинип/жарым-жартылай аткарылган WF.
- Деградация планы: Альтернативдик провайдерлер, "оор" бутактарды өчүрүү.
- Secret/Access/Аудит саясаты.
- Game-days/xaoc-сценарийлер спринтте бир жолу.
20) Alert мисалдар (идеялар)
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) Анти-үлгүлөрү
"Чоң монолиттүү WF" 100 + кадамдар жана катуу байланыш менен - татаал жана ызы-чуу бузулат.
Демпотенттик эмес операциялар боюнча ретрайдар (кош эсептен чыгаруу/чегерүү).
Таймауттар "узак өмүр" колдонуучу суроо → илип жана "зомби".
Компенсациянын жоктугу → кол менен оңдоолор жана узакка созулган постмортемалар.
WF версиясы жок → релиздер эски учурларды бузат.
Configuration/өзгөрмөлүү ичинде сырлар эч кандай айлануу жана аудит.
22) KPI сапаты Workflow
WF түрлөрү боюнча Success rate жана Abort rate.
p95/p99 кадам жана жараяны узактыгы.
MTTD/MTTR окуялар жараяны.
Retry storm count/ай (максаттуу → 0).
1k WF наркы жана "ийгиликке наркы".
Automation үлүшү:% учурларда HITL жок.
23) Тез баштоо (демейки)
3-5 критикалык WF (депозиттик, чыгым, KYC) менен башталат.
Узак мөөнөттүү дастандарды оркестрлөө; жергиликтүү реакциялар - окуялар.
Кадам убактысы ≤ бюджеттин 80%; Ретраи ≤ 2 менен backoff + життер.
Компенсациялар жазуу жүзүндө аныкталып, сыналган.
Дашборд салыштыруу менен трафиктин 5-10% канарейканы күйгүзүңүз.
Ар бир WF - ээси, runbook жана SLO алерт.
24) FAQ
Q: тандоо үчүн эмне: оркестр же окуялар?
A: Эгер көргөзмө картасы, мөөнөтү жана узун дастандар керек болсо - оркестр. Эгерде окуяларга жөнөкөй реакциялар басымдуулук кылса жана керектөөчүлөр көп болсо - хореография. Көбүнчө эң жакшы вариант - гибрид.
Q: Кантип кайталоо качуу керек?
A: Idempotency-key WF кире беришинде, дедуп 'message _ id' жана сактоо 'seen-events'. Кадамдар - демпотенттик.
Q: адам-контур керек?
A: Ооба, талаштуу/кымбат учурларда. Бирок мыкты автоматташтыруу жана эрежелер менен HITL үлүшүн өлчөө жана азайтуу.