GH GambleHub

Düyünlər arasında məlumat axını

(Bölmə: Ekosistem və Şəbəkə)

1) mahiyyəti və məqsədləri

Düyünlər arasında məlumat axını - ekosistem rolları (validatorlar/oxucular/indeksatorlar/körpülər/şlyuzlar/anbarlar/analitika) arasında hadisələrin, halların və artefaktların idarə olunan ötürülməsi kanallarıdır. Məqsədlər:
  • Proqnozlaşdırıla bilər: gecikmə/müvəffəqiyyət/təravət üçün sabit SLO.
  • Etibarlılıq: itkilərə, dublikatlara, reorglara davamlılıq.
  • Təhlükəsizlik və uyğunluq: şifrələmə, imzalar, rezidentlik.
  • Miqyaslı: geo-paylama, partizan, QoS.

2) Axınların taksonomiyası

1. Control Plane: konfiqlər, fitness, marşrut/limit siyasəti.
2. Data Plane - hadisə: domen hadisələri ('deposit.', 'payout.', 'bridge.').
3. Data Plane - axın: siqnallar və canlı metrlər üçün uzun ömürlü axınlar (gRPC/WebSocket).
4. Batch/Backfill: tarixi kəsiklər, repleylər, snapshots download.
5. Replikasiya/anti-entropiya: state sync, merklizasiya, CRDT axınları.
6. Teleemetri/müşahidə: log/metrika/treys side-band, əsas UX mane deyil.

Hər bir növə QoS sinifləri və retraj/sifariş qaydaları uyğundur.

3) Topologiyalar və marşrutlaşdırma

Hub-and-Spoke: şinlər kimi regional hub; spouki - rol düyünləri.
Mesh/P2P: replikasiya/gossip üçün qismən hüceyrə.
Edge-Tiered: nazik edge-şlyuzlar (rate-limit/cache) → qalın regional klasterlər.
Geo-Routing: Anycast/Latency-Aware LB + rezidentlik qaydaları.

Açar - partizanlaşdırma: 'partition _ key = chainId' tenant 'topic' entityId 'proqnozlaşdırıla bilən sifariş və miqyas verir.

4) Nəqliyyat və formatlar

HTTP/2/3, gRPC/QUIC - aşağı gecikmə, multiplex, keepalive.
Kafka/Pulsar/NATS - persistentlik/partiyalar/konsumer qrupları ilə növbələr.
WebSocket - push-hadisələr və canlı kanallar.
Formatlar: Protobuf/Avro (təkamül sxemləri), xarici API üçün JSON.
Hash ünvanı və Merkle qəbzləri bütövlüyü yoxlamaq üçün.

5) Sifariş, çatdırılma və bitirmə

Çatdırılma modeli:
  • At-least-once (default; idempotentlik/dedup tələb olunur).
  • Outbox/Inbox + idempotent konsumer vasitəsilə Exactly-once effekti.
  • Sifariş: partiya daxilində zəmanət verilir; partiyalararası qaydaya zəmanət verilmir.
  • Final: statuslar 'observed → confirmed (K) → finalized → invalidated (reorg)'; optimistic üçün - mübahisə pəncərəsi.

6) İdempotentlik və dedup

Hadisələr üçün idempotentlik açarı:
  • `idempotency_key = ${chainId}|${block}|${tx}|${logIndex}|${type}`
Qaydalar:
  • Upsert açar, TTL pəncərə babasının ≥ 72 saat.
  • Münaqişə payload - «həqiqət mənbəyi» siyasəti (prioritet, versiya, imza).
  • HTTP sorğuları üçün - 'Idempotency-Key' başlığı + cavab jurnalı.

7) Növbələr, backpressure və kvotalar

Növbələr: açar partiyalar; «Zəhərli» mesajlar üçün DLQ.
Backpressure: kreditlər/tokenlər, max-inflight məhdudiyyəti, circuit-breaker.
Kvotalar/QoS: P0 (kritik), P1 (məhsul), P2 (bulk). Ayrı hovuzlar/RPS/bytes/s/abunə limitləri.
Admission control: «bahalı» sorğuların erkən imtinası, diapazonlar/ölçülər üzrə mühafizə.

8) Uyğunluq və data modelləri

Partiya/qovşaq daxilində Read-you-write.
Regionlar/partiyalar arasında Eventual Consistency.
CRDT bəzi dəstləri (sayğaclar, çoxluqları) konflikt-free replikasiya üçün.
Snapshots + sürətli bootstrap və determinated replay üçün jurnallar.

9) Təhlükəsizlik və etimad

mTLS knots arasında, pinning açarları, rotasiya.
Mesaj/webhook imzaları, vaxt işarəsi və anti-replay pəncərə.
Yolda/dinc şifrələmə; regional açarların bölünməsi.
PII-minimallaşdırma: etiketlərdə/metriklərdə tokenizasiya, şəxsi məlumatların qadağan edilməsi.

10) Səmərəliliyi: paket, kompres, cache

Batching: overhead azaltmaq üçün kiçik mesajlar qruplaşdırılması.
Compression: təhlükəsiz lüğətlərlə zstd/gzip.
Cache: mənfi cavablar və «isti» kataloqlar; TTL və hadisə əlillik.

11) Məlumat sxemləri (referensiyalar)

Axınlar/partiyalar reyestri

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)
);

Hadisə jurnalı (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) Siyasət (YAML)

QoS və Limitlər

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

Sonlandırma və pəncərələr

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) Müşahidə: SLI/SLO

SLI (nüvə):
  • Latency p95/p99 (ingress→egress, per-stream/QoS).
  • Success Rate / Drop Rate.
  • Queue Lag p95 və partiyalar üzrə consumer lag.
  • Freshness p95 (ingest→consume).
  • Reorg/Invalidated Rate (əgər onchain).
  • Dedup Efficiency (idempotent udulmuş dubllar%).
  • Geo-Hit Ratio (yerli xidmət).
SLO (göstəricilər):
  • P0 latency p95 ≤ 400 ms; Success ≥ 99. 95%; Queue-lag p95 ≤ 2 с; Freshness p95 ≤ 60 с.
  • Dedup efficiency ≥ 99%; DLQ ≤ 0. 1% trafik.

Dashboard: Streams Core/Lag & Freshness/QoS & Errors/Geo/Security (mTLS/imzalar).

14) İstehlakçı nümunələri

Outbox/Inbox: atom nəşr və idempotent tətbiqi.
Exactly-once effekt: Son tətbiq açar və versiyası saxlamaq.
Watermarks: gecikmiş hadisələrin işlənməsi (late data).
Idempotent Side-Effects: xarici sorğular yalnız açar və cavab jurnalı ilə.

15) Deqradasiya rejimləri

Finalized-only mode: Yalnız yekunlaşdırılmış hadisələr veririk.
Cache-only, ağır üsulları dondurmaq.
Throttle P2 və axınlar üçün «pəhriz rejimi» (aşağı yeniləmə tezliyi).
İkinci dərəcəli API üçün Read-only.

16) Relizlər və downtime olmadan miqrasiya

Blue-Green/Canary axınlar və konsumerlər.
Schema-first: yalnız sahələrin əlavə edilməsi; MAJOR - topiklərin paralel versiyaları.
Offset miqrasiyaları: shadow-konsumerlər, lag/uğur müqayisə, keçid.

17) Əməliyyat qaydaları

Gündəlik: SLO hesabatı (latency/success/lag/freshness), imza auditi, DLQ yoxlaması.
Həftəlik: partiya/kvota təftişi, DR testi (snapshot bootstrap), Dedup Efficiency analizi.
Aylıq: chaos-testlər (loss/jitter, brokerdən imtina, reorg-burst), finality-pəncərələrin yenidən baxılması.
Buraxılışdan əvvəl: kanarya ≥ 120 dəq, SLO geytaları, geri dönüş planı.

18) Playbook hadisələr

A. Partlayış Queue-Lag/Consumer-Lag

1. Konsumerləri/KEDA artırın; 2) partiyaları yenidən bölüşdürmək; 3) P2 və bulk jobları dondurun; 4) «isti» açarların analizi.

B. Böyümə p95 Latency P0

1. P2-throttle, P0 prioritetləşdirilməsi; 2) şlyuzları/brokerləri ölçmək; 3) yalnız referans üçün cache; 4) outlier-ejection.

C. yüksək DLQ/dublyaj

1. İdempotentlik açarını/TTL yoxlayın; 2) dedupu gücləndirmək; 3) səs-küylü prodüseri məhdudlaşdırmaq; 4) fiksdən sonra səslənmə.

D. Drift sxemləri/müqavilələri

1. strict-mode daxil edin (qeyri-sabit kəsmək); 2) prodüseri xəbərdar etmək; 3) adapter azad; 4) linterləri yeniləyin.

E. rezidentlik/imzaların pozulması

1. İxrac/kanal bloku; 2) açar/sertlərin rotasiyası; 3) audit və post-mortem; 4) siyasətin yenilənməsi.

19) Giriş çek siyahısı

1. Axın növlərini və partizan açarını təyin edin.
2. K/mübahisə pəncərələri ilə idempotentlik/dedup və finala daxil edin.
3. Növbələri, QoS, kvotaları və backpressure konfiqurasiya.
4. mTLS/imza və rezidentlik siyasətini işə salın.
5. Sxemləri/reyestrləri (streams, offsets, dlq) və SLI/SLO telemetriyasını daxil edin.
6. downtime olmadan canary/blue-green və miqrasiyası sxemləri təşkil edin.
7. Deqradasiya rejimlərini və hadisələrin playbuklarını işləyin.

20) Sözlük

Backpressure - giriş yükünə nəzarət (kreditlər/tokenlər/limitlər).
DLQ - problemli mesajlar üçün «ölü növbə».
CRDT - koordinasiya olmadan münaqişələrin həlli ilə məlumat strukturu.
Finality - hadisənin/vəziyyətin geri dönməzliyi.
Exactly-once effekti - at-least-once çatdırılma üzərində təkrar təhlükəsiz nəticə.
Watermark - sonrakı hadisələr üçün tərəqqi işarəsi.
Outlier-ejection - deqradasiyaya uğramış instansiyaların hovuzdan çıxarılması.

Nəticə: düyünlər arasında məlumat axını sadəcə «növbə və dinləyici» deyil, nizam-intizam, finallaşma, idempotentlik, təhlükəsizlik və müşahidə sistemidir. Standart partizan açarları, QoS/kvotalar, ciddi sxemlər və SLO, deqradasiya rejimləri və playbukları ilə birlikdə ekosistemə miqyasda və audit altında davamlı məlumat ötürülməsi kanalları verir.

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!

Telegram
@Gamble_GC
İ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.