GH GambleHub

Tugunlar orasidagi maʼlumotlar oqimi

(Bo’lim: Ekotizim va Tarmoq)

1) O’zbekiston Respublikasining

Uzellar orasidagi ma’lumotlar oqimi - bu ekotizim rollari (validatorlar/riderlar/indeksatorlar/ko’priklar/shlyuzlar/omborlar/tahlillar) o’rtasidagi voqealar, holatlar va artefaktlarni uzatishning boshqariladigan kanallari. Maqsadlar:
  • Oldindan aytish mumkin: kechikish/muvaffaqiyat/yangilik bo’yicha barqaror SLO.
  • Ishonchlilik: yo’qotishlar, dublikatlar, reorglarga chidamlilik.
  • Xavfsizlik va komplayens: shifrlash, imzolar, rezidentlik.
  • Masshtablanishi: geo-taqsimlash, partiyalashtirish, QoS.

2) Oqimlar taksonomiyasi

1. Control Plane: konfigi, ficheflaglar, marshrutlash/limitlar siyosati.
2. Data Plane - hodisa: domen hodisalari (’deposit.’,’payout.’,’bridge.’).
3. Data Plane - oqim: signallar va live-metriklar uchun uzoq davom etadigan oqimlar (gRPC/WebSocket).
4. Batch/Backfill: tarixiy qismlar, repleylar, snapshotlar.
5. Replikatsiya/anti-entropiya: state sync, merklizatsiya, CRDT oqimlari.
6. Teleemetriya/kuzatuv: logi/metrika/treyslar side-band, asosiy UXga xalaqit bermaydi.

QoS sinflari va retraj/tartib qoidalari har bir turga mos keladi.

3) Topologiyalar va yo’nalishlar

Hub-and-Spoke: mintaqaviy xablar shina sifatida; spouki - rollar tugunlari.
Mesh/P2P: replikatsiya/davlat tipi uchun qisman kataklik.
Edge-Tiered: yupqa edge-shlyuzlar (rate-limit/kesh) → qalin mintaqaviy klasterlar.
Geo-Routing: Anycast/Latency-Aware LB + rezidentlik qoidalari.

"partition _ key = chainId’tenant’topic’entityId’ni partiyalashning asosiy usuli - oldindan aytib bo’ladigan tartib va ko’lamni beradi.

4) Transport va formatlar

HTTP/2/3, gRPC/QUIC - past latentlik, multiplekslash, keepalive.
Kafka/Pulsar/NATS - persistentlik/partiyalar/konsumer-guruhlar bilan navbatlar.
WebSocket - push-hodisalar va jonli kanallar.
Formatlar: Protobuf/Euro (evolyutsion sxemalar), tashqi API uchun JSON.
Xesh-manzil va Merkle-kvitansiyalari.

5) Tartib, yetkazib berish va yakunlash

Yetkazib berish modeli:
  • At-least-once (andoza; idempotentlik/dedup talab qilinadi).
  • Exactly-once-effekt Outbox/Inbox + idempotent konsumer orqali.
  • Tartib: partiya doirasida kafolatlanadi; partiyalararo tartib kafolatlanmaydi.
  • Yakunlash:’observed → confirmed (K) → finalized → invalidated (reorg)’maqomlari; optimistic uchun - nizo oynasi.

6) Idempotentlik va dedup

Hodisa uchun idempotentlik kaliti:
  • `idempotency_key = ${chainId}|${block}|${tx}|${logIndex}|${type}`
Qoidalar:
  • Kalit boʻyicha Upsert, TTL dedup oynalari ≥ 72 soat
  • To’qnashuvga payload - «haqiqat manbai» siyosati (ustuvorlik, versiya, imzo).
  • HTTP soʻrovlari uchun - «Idempotency-Key» sarlavhasi + javoblar jurnali.

7) Navbatlar, backpressure va kvotalar

Navbatlar: kalit bo’yicha partiyalar; «Zaharli» xabarlar uchun DLQ.
Backpressure: kreditlar/tokenlar, max-inflight cheklovi, circuit-breaker.
Kvotalar/QoS: P0 (kritik), P1 (mahsulot), P2 (bulk). Alohida pullar/RPS/bytes/s/obuna limitlari.
Admission control: «qimmat» soʻrovlarni barvaqt rad etish, diapazon/oʻlcham boʻyicha guard.

8) Ma’lumotlarning muvofiqligi va modellari

Partiya/tugun doirasida o’qish-you-write.
Mintaqalar/partiyalar o’rtasida Eventual Consistency.
Baʼzi toʻplamlar (hisoblagichlar, toʻplamlar) uchun CRDT.
Snapshotlar + tezkor bootstrap va aniqlangan replay uchun jurnallar.

9) Xavfsizlik va ishonch

tugunlar orasidagi mTLS, kalitlar pinning, rotatsiya.
Xabar/vebxuk imzolari, vaqt belgisi va anti-replay oynasi.
Yo’lda/tinchlikda shifrlash; mintaqaviy kalitlarni segregatsiya qilish.
PII-minimallashtirish: yorliqlar/metriklarda shaxsga doir ma’lumotlarni tokenlashtirish, taqiqlash.

10) Samaradorligi: paketlash, siqish, kesh

Batching: overhead qismini kamaytirish uchun kichik xabarlarni guruhlash.
Compression: zstd/gzip xavfsiz lugʻatlar bilan.
Kesh: salbiy javoblar va «issiq» ma’lumotnomalar; TTL va hodisa bo’yicha nogironlik.

11) Ma’lumotlar sxemalari (referensiyalar)

Oqimlar/partiyalar registri

sql
CREATE TABLE streams (
name TEXT PRIMARY KEY,
partitions INT,
qos TEXT,        -- P0    P1    P2 retention_days INT,
schema_version TEXT
);

CREATE TABLE offsets (
stream TEXT, partition INT, consumer_group TEXT,
offset BIGINT, updated_at TIMESTAMPTZ,
PRIMARY KEY (stream, partition, consumer_group)
);

Voqealar jurnali (idempotent upsert)

sql
CREATE TABLE events_core (
id UUID PRIMARY KEY,
idempotency_key TEXT UNIQUE,
ts TIMESTAMPTZ,
partition_key TEXT,
type TEXT,
payload JSONB,
status TEXT,      -- observed    confirmed    finalized    invalidated signature TEXT
);

DLQ/karantin

sql
CREATE TABLE dlq (
id UUID PRIMARY KEY,
stream TEXT, partition INT, offset BIGINT,
reason TEXT, payload JSONB, ts TIMESTAMPTZ
);

12) Siyosat (YAML)

QoS va limitlar

yaml qos:
P0: { ack_timeout_ms: 2000, retries: 3, backoff_ms: [100,400,800], rps_per_org: 1500 }
P1: { ack_timeout_ms: 5000, retries: 2, rps_per_org: 800 }
P2: { best_effort: true, rps_per_org: 200 }
limits:
max_message_bytes: 1048576 max_stream_subscriptions_per_client: 20

Yakunlash va oynalar

yaml finality:
eth-mainnet: { k: 12 }
polygon:   { k: 256 }
optimistic: { k: 0, challenge_minutes: 20 }

Routing/rezidentlik

yaml routing:
prefer_local_region: true fallback: [nearest_healthy, master_hub]
residency:
eu: ["eu"]
uk: ["uk"]

13) Kuzatish darajasi: SLI/SLO

SLI (yadro):
  • Latency p95/p99 (ingress→egress, per-stream/QoS).
  • Success Rate / Drop Rate.
  • Queue Lag p95 va partiyalar boʻyicha consumer lag.
  • Freshness p95 (ingest→consume).
  • Reorg/Invalidated Rate (agar oncheyn boʻlsa).
  • Dedup Efficiency (idempotentda yutilgan dubllar%).
  • Geo-Hit Ratio (mahalliy xizmat ko’rsatilgan).
SLO (taxminlar):
  • P0 latency p95 ≤ 400 ms; Success ≥ 99. 95%; Queue-lag p95 ≤ 2 с; Freshness p95 ≤ 60 с.
  • Dedup efficiency ≥ 99%; DLQ ≤ 0. Trafikning 1%.

Dashbordlar: Streams Core/Lag & Freshness/QoS & Errors/Geo/Security (mTLS/imzolar).

14) Iste’molchilarning patternlari

Outbox/Inbox: atomik nashr va idempotent qo’llash.
Exactly-once effekt: oxirgi ishlatilgan kalit va versiyani saqlash.
Watermarks: kech hodisalarni qayta ishlash (late data).
Idempotent Side-Effects: tashqi soʻrovlar faqat kalit va javob daftariga ega.

15) Degradatsiya rejimlari

Finalized-only mode: Biz faqat yakunlangan voqealarni beramiz.
Ma’lumotnomalar uchun cache-only, og’ir usullarni muzlatish.
Throttle P2 va strimlar uchun «parhez rejimi» (yangilanish chastotasi pasaygan).
Ikkinchi darajali API uchun Read-only.

16) Relizlar va downtaymsiz migratsiyalar

Blue-Green/Canary oqimlar va konsumerlar bo’yicha.
Schema-first: faqat maydonlarni qoʻshish; MAJOR - topiklarning parallel versiyalari.
Offset’lar migratsiyasi: shadow-konsumerlar, lag/muvaffaqiyat taqqoslash, almashtirish.

17) Operatsion reglamentlar

Har kuni: SLO hisoboti (latency/success/lag/freshness), imzolar auditi, DLQ tekshiruvi.
Har hafta: partiyalar/kvotalarni taftish qilish, DR testi (snapshotdan bootstrap), Dedup Efficiency tahlili.
Har oyda: chaos-testlar (loss/jitter, brokerdan voz kechish, reorg-burst), finality-derazalarni qayta ko’rib chiqish.
Chiqarishdan oldin: kanareyka ≥ 120 daqiqa, SLO-geytlar, qaytish rejasi.

18) Hodisalar Playbook

A. Queue-Lag/Consumer-Lag portlashi

1. Konsumerlarni/KEDA ko’paytirish; 2) partiyalarni qayta taqsimlash; 3) P2 va bulk-joblarni muzlatish; 4) «issiq» kalitlarni tahlil qilish.

B. O’sish p95 Latency P0

1. P2-throttle, P0 ustuvorligi; 2) shlyuzlarni/brokyerlarni ko’paytirish; 3) faqat ma’lumotnomalar uchun kesh; 4) outlier-ejection.

C. Yuqori DLQ/dublyaj

1. Idempotentlik/TTL kalitini tekshirish; 2) dedupni kuchaytirish; 3) shovqinli prodyuserni cheklash; 4) fiksdan keyin takrorlash.

D. sxemalar/kontraktlar drifti

1. strict-mode ni yoqish (nolidlarni kesish); 2) prodyuserni xabardor qilish; 3) adapterni chiqarish; 4) linterlarni yangilash.

E. Rezidentlik/imzolar buzilishi

1. Eksport/kanal bloki; 2) kalitlar/sertlarni rotatsiya qilish; 3) audit va post-mortem; 4) siyosatni yangilash.

19) Joriy etish chek-varaqasi

1. Oqim turlarini va partiyalash kalitini aniqlang.
2. Idempotentlik/dedup va K/nizo oynalari bilan yakunlashni kiriting.
3. Navbatlar, QoS, kvotalar va backpressure.
4. mTLS/imzo va rezidentlik siyosatini ishga tushiring.
5. Sxemalar/reyestrlarni (streams, offsets, dlq) va SLI/SLO telemetriyasini kiriting.
6. Kanary/blue-green va sxemalarni to’xtatmasdan ko’chirishni tashkil qiling.
7. Degradatsiya rejimlari va hodisalar pleybuklarini ishlab chiqing.

20) Glossariy

Backpressure - kirish yuklamasini nazorat qilish (kreditlar/tokenlar/limitlar).
DLQ - muammoli xabarlar uchun «o’lik navbat».
CRDT - mojarolarni muvofiqlashtirmasdan hal qiluvchi maʼlumotlar tuzilishi.
Finality - voqea/holatning qaytarilmasligi.
Exactly-once-effekt - qayta-xavfsiz natija at-least-once yetkazib berish ustiga.
Watermark - keyingi hodisalar uchun ishlov berish jarayoni.
Outlier-ejection - buzilgan instansiyalarni hovuzdan chiqarish.

Xulosa: uzellar orasidagi ma’lumotlar oqimi shunchaki «navbat va tinglovchi» emas, balki tizimli tartib-intizom, yakunlanish, idempotentlik, xavfsizlik va kuzatuvdir. Partiyalashtirishning standart kalitlari, QoS/kvotalar, qat’iy sxemalar va SLOlar degradatsiya rejimlari va pleybuklar bilan birgalikda ekotizimga audit va masshtabda ma’lumotlarni uzatishning barqaror kanallarini beradi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Telegram
@Gamble_GC
Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.