WinUpGo
Axtarış
CASWINO
SKYSLOTS
BRAMA
TETHERPAY
777 FREE SPINS + 300%
Kriptovalyuta Casino Kriptovalyutalar Torrent Gear - universal torrent axtarış! Torrent Gear

Gündə milyonlarla əməliyyatın fail-safe emalını necə qurmaq olar

Məqalənin tam mətni

💡 Fintech/qumar və əlaqəli sənaye məhsulları və platforma komandaları üçün texniki material. Oyuna çağırış deyil. «Əməliyyatlar» dedikdə pul/hesab əməliyyatları (hesabdan çıxarma, hesaba köçürmə, köçürmə, settlment, geri qaytarma) nəzərdə tutulur.

1) əməliyyatlar üçün fail-safe nə deməkdir

Fail-safe - hər hansı bir nasazlıq vəziyyətinin ya təhlükəsiz dayanma, ya da pul və məlumat itkisi olmadan kompensasiya vəziyyətinə gətirib çıxardığı zaman. Məqsədlər:
  • «Cüt debet/kreditlər» = 0.
  • İtirilmiş əməliyyatlar/hadisələr = 0.
  • Gizli/çatdırılma, aydın deqradasiya rejimləri və DR ilə proqnozlaşdırıla bilən SLO.

Əsas - pul invariantları (bir yerdə balans həqiqəti), idempotentlik, hadisələrin razılaşdırılmış çatdırılması.


2) Memarlıq prinsipləri (qısa)

1. Single source of truth: balans və mühasibat - Ledger/Wallet. Ətrafdakı xidmətlər pul deyil, proseslərin vəziyyətini saxlayır.

2. Idempotency everywhere: bütün «qeydlər» əməliyyatları 'Idempotency-Key' qəbul; təkrar eyni nəticəni qaytarır.

3. Çatdırılma zəmanəti ilə hadisə: outbox/CDC, növbələr, DLQ, dedup.

4. Dastanlar və kompensasiyalar, «əl düzəlişləri» deyil.

5. Back-pressure və prioritetlər: sistem yavaşlayır, lakin dağılmır.

6. Default müşahidə: strukturlaşdırılmış qeydlər, treysinq, metriklər.

7. Multi-region və DR: aktiv-aktiv/aktiv-passiv, müntəzəm təlimlər.


3) Referans-topologiya


Edge/API GW ──Command API ──App Service (Sagas)
│           │
│         (Outbox TX)

RateLimit     Outbox Table ──Publisher ──Kafka/Pulsar ──Consumers
│                      │
WAF                     └─DLQ/Replay
│
└─Ledger/Wallet (ACID, idempotent debit/credit)
│
└─CDC/Changefeed ──DWH/BI/Recon

Açar yerlər: Outbox (komandanın atom yazısı və «layihə» hadisəsi), Publisher (düz-bir çatdırılma), Consumers (idempotent, dedup-açarı ilə), DLQ/Replay (nəzarət olunan təkrar).


4) Pul invariantları və uyğunluq

Balans həqiqəti - Ledger (ACID, seriyalı əməliyyatlar və ya ciddi hesab qaydası).

Pul əmrləri: 'debit', 'credit', 'hold', 'commit', 'rollback' - idempotentdir.

Birləşdirilmiş proseslər dastanlar kimi qurulur:
  • 'authorize → settle → credit' (depozit/settlment), 'request → submit → settled/failed' (ödəniş/çıxış), 'refund/void' (kompensasiya).
  • Ledger keçərək birbaşa balans düzəlişləri yoxdur.

5) İdempotentlik: açar dizaynı

Açar birmənalı olaraq biznes əməliyyatını müəyyən etməlidir:
  • `bet_id+amount+currency`, `payment_intent+capture_id`, `payout_id`, `chain_txid`.
  • Nəticəni (response cache) ilə saxlayın. Eyni açar → eyni body/status ilə təkrar.
  • Uyğunsuzluğa nəzarət edin: fərqli bir məbləğ ilə eyni açar → 'IDEMPOTENCY _ MISMATCH'.

6) Növbələr, nizam və dedup

Exactly-once effektləri nəqliyyat ilə deyil, idempotent müştəri + dedup-saxlama (LRU/Redis/DB c TTL) ilə əldə edilir.

Açar sırasını saxlayın (partition key = 'account _ id/round _ id/player _ id').

«Müxtəlif» açarlar üçün - state version və kommutatorlar (state machine per entity).

DLQ tələb olunur: N cəhdlərdən sonra - izolyasiya olunmuş mövzuda insan oxuya bilən səbəblə.


7) Outbox/CDC: niyə hadisələr «itirilmir»

Xidmətin DB-də bir əməliyyat çərçivəsində həm biznes dəyişikliyi, həm də outbox-da qeyd edirik.

Ayrı publisher outbox oxuyur və təsdiq ilə şin dərc edir.

Alternativ - CDC (Change Data Capture) DB səviyyəsində (Debezium/log replikasiyaları).

Əməliyyat olmadan heç bir «hadisə log» itki mənbəyidir.


8) Back-pressure və prioritetlər

Token-baketlər və giriş kvotaları (per tenant/brand/region).

Prioritet ilə növbələr: promo/telemetriyadan yuxarı pul yolları.

Həddindən artıq yüklənmə zamanı: 'no new sessions/requests' rejimləri, ikincil fiqurların dondurulması, nüvənin saxlanması.

Avto deqradasiya: arxa plan məsələlərinin tezliyini azaltmaq, dinamik kritik işçilərin genişləndirilməsi.


9) Çox bölgəli sabitlik

API və növbələr üçün aktiv-aktiv, lokal Ledger (və ya region/valyuta ilə qlobal).

Data residency: pul/PII/jurnallar açıq qaydalar olmadan krossovka deyil.

Hadisələrin regionlararası replikasiyası «region» işarəsi ilə asinxronikdir.

RPO/RTO: RPO ≤ 5 dəqiqə, RTO ≤ 30 dəqiqə; mütəmadi yoxlayın.


10) SLO/SLI və dashboard

Göstərişlər (nümunə):
  • p95 'authorize/debit/credit' <150-300 ms (daxili yol).
  • p95 end-to-end «komanda → şin hadisəsi» <1-2 s.
  • Webhook/xarici hadisələrin çatdırılması p99 <5 dəq.
  • «İtirilmiş/dublyaj edilmiş əməliyyatlar» = 0 (müqavilə yoxlamaları).

Metrlər: latency p50/p95/p99, error-rate (4xx/5xx/business), consumer/queue lag, retry storms, settle lag, webhook lag, DLQ ölçüsü, tezlik 'IDEMPOTENCY _ MISMATCH'.


11) Müşahidə və audit

'trace _ id', 'idempotency _ key', biznes id, səhv kodları ilə strukturlaşdırılmış JSON qeydləri.

OpenTelemetry: Trace HTTP/gRPC/DB/şinlər, span saqa.

WORM-audit: kritik dəyişikliklərin dəyişməz jurnalları (limitlər, açarlar, promo/cekpot konfiqləri).

PII/Secrets Masking, Regional Backets, RBAC/ABAC daxil olmaq.


12) Etibarlılıq testi

Müqavilə testləri: təkrarlama/dublikatlar, out-of-order, idempotentlik, dedup.

Yükləmə: pik profili (x10), növbə dayanıqlığı və DB.

Xaos-cases: Ledger/cüzdan düşməsi, növbə/bölgələr, CDC gecikmələri, «fırtına» retrains.

Game Days: MTTR ölçmə ilə müntəzəm DR və hadisə təlimləri.


13) Anbarlar və məlumatlar

ALTP pul altında: tranzaksiya DB (RPO ≈ 0), ciddi indekslər, kritik varlıqlara görə seriallaşdırıla bilən səviyyələr.

Cache (Redis) - yalnız sürətləndirmək üçün, «həqiqət» üçün deyil. TTL + jitter, cache stampede qarşı müdafiə.

OLAP/DWH - hesabatlar/analitika üçün. CDC/şin axını, ALTP yükü olmadan.

Verilənlər sxemləri versiyalaşdırılır; downtime olmadan miqrasiya (expand/contract).


14) Retraj orkestri

RPC-də eksponent backoff + jitter, deadline/timeout.

Hər təbəqədə idempotent təkrarlama (müştəri → xidmət → istehlakçı).

retrais kvotalar, «fırtınalar» qarşı müdafiə (circuit breaker, uyğun harada hedged requests).

DLQ-dən yalnız «təhlükəsiz» pəncərələrə sürət məhdudiyyəti ilə replay.


15) Nəqliyyat təhlükəsizliyi

mTLS hər yerdə S2S, qısa ömürlü tokenlər (OAuth2 CC), vebhuk üçün cisimlərin imzaları (HMAC/EdDSA).

Vault/HSM sirləri, rotasiya, per brand/region açarları.

least privilege siyasəti, əl əməliyyatları «dörd göz».


16) Nümunəvi müqavilələr (fraqmentlər)

İdempotent debet komandası


POST /v1/wallet/debit
Headers: X-Idempotency-Key: debit_pi_001, X-Trace-Id: tr_a1b2
{
"account_id":"acc_42",  "amount":{"minor_units":5000,"currency":"EUR"},  "reason":"payout",  "reference_id":"po_001"
}
→ 200 { "status":"committed", "entry_id":"e_77" }
(təkrar → eyni cavab)

Hadisə outbox

json
{
"event_id":"uuid",  "event_type":"wallet. debit. committed",  "occurred_at":"2025-10-23T16:21:05Z",  "account_id":"acc_42",  "amount_minor":5000,  "currency":"EUR",  "reference_id":"po_001",  "idempotency_key":"debit_pi_001",  "schema_version":"1. 3. 0"
}

17) Çek vərəqləri

Platforma/operator

  • Balans həqiqəti - bir Ledger; heç bir yol yoxdur.
  • 'Idempotency-Key' ilə bütün write əməliyyatları; cavab açar saxlanılır.
  • Bütün domen qeydləri, DLQ və replay idarə Outbox/CDC.
  • Prioritetlər, back-pressure, deqradasiya rejimləri ilə növbələr.
  • Partition-keys biznes açarları ilə seçilir; istehlakçılar idempotentdir.
  • SLO-daşbordları, OpenTelemetry, WORM-audit.
  • Müntəzəm DR/xaoc təlimləri, müqavilə/yük testləri.
  • Data residency, şifrələmə, Vault/HSM, açar rotasiyası.

Provayderlər/inteqrasiya

  • Göndərirəm 'Trace-Id '/' Idempotency-Key', yenidən çatdırılmağa hazırdır.
  • Webhucks imzalanmış və deduplizasiya edilir.
  • Sxemlərin/müqavilələrin versiyalarına riayət olunur (semver, deprecation).

18) Qırmızı bayraqlar (anti-nümunələr)

Balans Ledger-də komanda olmadan webhook-da dəyişir.

İdempotantlığın olmaması → ikiqat debet/kreditlər.

Outbox/CDC keçərək hadisələrin yayımlanması.

Back-pressure olmadan monolit: trafikin zirvəsi hər şeyi vurur.

OLTP və hesabatların qarışdırılması: BI döyüş DB vurur.

DLQ/replay yoxdur; səhvlərin «sakit» udulması.

Heç bir regional PII/pul təcrid; bir neçə marka ümumi açarları.

DB balans/status əl düzəlişləri.


19) Yekun

Gündə milyonlarla əməliyyatın fail-safe emalı invariantlar və intizam haqqındadır: həqiqətin vahid mənbəyi, idempotent komandalar, dastanlar və outbox/CDC, sıra və deadup, müşahidə və idarə olunan deqradasiyalar. Giriş mandatları, DR təcrübələri və müntəzəm təlimlər əlavə edin - və pulun sürətli və yalnız bir dəfə hərəkət etdiyi bir sistem əldə edin, hadisələr itirilmir və trafik artımı və uğursuzluqlar sürprizlər deyil, idarə olunan risklərə çevrilir.

× Oyunlarda axtarış
Axtarışı başlatmaq üçün ən azı 3 simvol daxil edin.