GH GambleHub

Тораптар арасындағы деректер ағындары

(Бөлім: Экожүйе және Желі)

1) Мақсаты мен мәні

Тораптар арасындағы деректер ағыны - бұл экожүйенің рөлдері (валидаторлар/ридерлер/индекстеушілер/көпірлер/шлюздер/сақтау орындары/талдау) арасындағы оқиғаларды, жай-күйлер мен артефактілерді берудің басқарылатын арналары. Мақсаттары:
  • Болжамдылық: кідіріс/табыс/жаңалық бойынша тұрақты SLO.
  • Сенімділік: шығындарға, телнұсқаларға, реоргаларға төзімділік.
  • Қауіпсіздік және комплаенс: шифрлау, қолтаңбалар, резиденттік.
  • Масштабталуы: гео-бөлу, партиялану, QoS.

2) Ағындардың таксономиясы

1. Control Plane: конфигалар, фичефлагтар, маршруттау/лимиттер саясаты.
2. Data Plane - оқиға: домендік оқиғалар ('deposit.', 'payout.', 'bridge.').
3. Data Plane - стрим: сигналдар мен live-метриктер үшін ұзақ мерзімді ағындар (gRPC/WebSocket).
4. Batch/Backfill: тарихи тіліктерді, репликаларды, снапшоттарды жүктеу.
5. Репликация/анти-энтропия: state sync, мерклизация, CRDT ағындары.
6. Телееметрия/бақылау: логи/метрика/трейстер side-band, негізгі UX кедергі келтірмейді.

Әр түрге QoS сыныптары және ретрайлардың/тәртіптің жеке ережелері сәйкес келеді.

3) Топологиялар және бағыттау

Hub-and-Spoke: аймақтық хабтар шиналар ретінде; споуктар - рөлдердің түйіндері.
Mesh/P2P: репликалау/мемсипке арналған ішінара ұяшық.
Edge-Tiered: жұқа edge-шлюздер (rate-limit/кэш) → қалың өңірлік кластерлер.
Geo-Routing: Anycast/Latency-Aware LB + резиденттік ережелері.

Негізгі - партиялану: 'partition _ key = chainId' tenant 'topic' entityId 'болжамды тәртіп пен масштабты береді.

4) Көлік және форматтар

HTTP/2/3, gRPC/QUIC - төмен латенттілік, мультиплексиялау, keepalive.
Kafka/Pulsar/NATS - персистенттілігі/партиялары/консьюмер-топтары бар кезектер.
WebSocket - іске қосу оқиғалары мен live-арналар.
Форматтар: Protobuf/Euro (эволюциясы бар схемалар), сыртқы API үшін JSON.
Тұтастығын тексеру үшін хеш-адрестеу және Merkle-түбіртегі.

5) Тәртібі, жеткізу және аяқтау

Жеткізу үлгісі:
  • At-least-once (әдепкі; іспеттілік/дедуп талап етіледі).
  • Exactly-once-effect Outbox/Inbox + демпотенттік консюмер арқылы.
  • Тәртіп: партия шегінде кепілдендіріледі; партияаралық тәртіпке кепілдік берілмейді.
  • Аяқтау: 'observed → confirmed (K) → finalized → invalidated (reorg)' мәртебелері; optimistic үшін - дау терезесі.

6) Іспеттілік және дедуп

Оқиғалар үшін сәйкестік кілті:
  • `idempotency_key = ${chainId}|${block}|${tx}|${logIndex}|${type}`
Ережелер:
  • Upsert кілт бойынша, TTL атасының терезелері ≥ 72 сағ.
  • Payload қақтығысына - «ақиқат көзі» саясаты (басымдық, нұсқа, қолтаңба).
  • HTTP сұраулары үшін - 'Idempotency-Key' + жауаптар журналы.

7) Кезектер, backpressure және квоталар

Кезектер: кілт бойынша партия; «Улы» хабарлар үшін DLQ.
Backpressure: кредиттер/белгілер, max-inflight шектеу, circuit-breaker.
Квоталар/QoS: P0 (сындарлы), P1 (өнім), P2 (bulk). RPS/bytes/s/жазылымдардың бөлек пулдары/лимиттері.
Admission control: ауқымдар/өлшемдер бойынша «қымбат» сұраулардан ерте бас тарту.

8) Деректердің келісімділігі мен модельдері

Партия/торап шегінде Read-you-write.
Өңірлер/партиялар арасындағы Eventual Consistency.
CRDT кейбір жиындарды (есептегіштер, жиындар) жанжал-фри репликалауға арналған.
Snapshotlar + жылдам bootstrap және детерминирленген replay журналдары.

9) Қауіпсіздік және сенім

түйіндер арасындағы mTLS, кілттердің пиннингі, ротация.
Хабар/вебхук қолтаңбалары, уақыт белгісі және анти-replay терезесі.
Жолда/тыныштықта шифрлау; өңірлік кілттерді сегрегациялау.
PII-азайту: лейблдерде/метриктерде дербес деректерді токендеу, тыйым салу.

10) Тиімділігі: пакеттеу, компрессия, кэш

Batching: overhead төмендету үшін ұсақ хабарларды топтау.
Compression: қауіпсіз сөздіктері бар zstd/gzip.
Кэш: теріс жауаптар және «ыстық» анықтамалықтар; TTL және оқиға бойынша мүгедектік.

11) Деректер схемалары (референстер)

Ағындардың/партиялардың тіркелімі

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

Оқиғалар журналы (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/карантин

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

12) Саясат (YAML)

QoS және лимиттер

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

Аяқтау және терезелер

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

Роутинг/резиденттік

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

13) Бақылау қабілеті: SLI/SLO

SLI (ядро):
  • Latency p95/p99 (ingress→egress, per-stream/QoS).
  • Success Rate / Drop Rate.
  • Queue Lag p95 және consumer lag партиялары бойынша.
  • Freshness p95 (ingest→consume).
  • Reorg/Invalidated Rate (егер ончейн болса).
  • Dedup Efficiency (демпотентпен жұтылған дублдар%).
  • Geo-Hit Ratio (жергілікті қызмет көрсетілген).
SLO (бағдарлар):
  • P0 latency p95 ≤ 400 мс; Success ≥ 99. 95%; Queue-lag p95 ≤ 2 с; Freshness p95 ≤ 60 с.
  • Dedup efficiency ≥ 99%; DLQ ≤ 0. Трафиктің 1%.

Дашбордтар: Streams Core/Lag & Freshness/QoS & Errors/Geo/Security (mTLS/қолтаңбалар).

14) Тұтынушылардың паттерндері

Outbox/Inbox: атомарлық жарияланым және демпотенттік қолдану.
Exactly-once әсері: соңғы қолданылған кілт пен нұсқаны сақтау.
Watermarks: кешігетін оқиғаларды өңдеу (late data).
Idempotent Side-Effects: сыртқы сұраулар тек кілтпен және жауап журналымен.

15) Тозу режимдері

Finalized-only mode: тек аяқталған оқиғалар ғана беріледі.
Анықтамалықтар үшін Cache-only, ауыр әдістерді қатыру.
Throttle P2 және стримдерге арналған «диета режимі» (жаңартулардың төмендетілген жиілігі).
Екінші дәрежелі API үшін Read-only.

16) Даунтайсыз релиздер мен көші-қон

Blue-Green/Canary ағындар мен консьюмерлер бойынша.
Schema-first: тек өрістерді қосу; MAJOR - топиктердің параллель нұсқалары.
Offset миграциялары: shadow-консумерлер, lag/табысты салыстыру, ауыстырып қосу.

17) Операциялық регламенттер

Күн сайын: SLO есебі (latency/success/lag/freshness), қол қою аудиті, DLQ тексеруі.
Апта сайын: партияларды/квоталарды тексеру, DR тесті (снапшоттан bootstrap), Dedup Efficiency талдауы.
Ай сайын: chaos-тесттер (loss/jitter, брокердің бас тартуы, reorg-бурст), finality-терезелерді қайта қарау.
Шығару алдында: канарейка ≥ 120 мин, SLO-гейттер, кері қайтару жоспары.

18) Playbook оқиғалар

А. Queue-Lag/Consumer-Lag жарылысы

1. Консумерлерді/KEDA ұлғайту; 2) партияларды қайта бөлу; 3) P2 және bulk-джобтарды мұздату; 4) «ыстық» кілттерді талдау.

B. p95 Latency P0

1. P2-throttle, Р0 басымдығы; 2) шлюздерді/брокерлерді масштабтауға; 3) тек анықтамалықтар үшін кэш; 4) outlier-ejection.

C. жоғары DLQ/дубляж

1. Теңсіздік/TTL кілтін тексеру; 2) дедупты күшейту; 3) шулы продюсерді шектеуге; 4) фикстен кейінгі реплика.

D. drift схемалар/келісімшарттар

1. strict-mode дегенді қосу 2) продюсерді хабардар етуге; 3) адаптер шығару; 4) линтерлерді жаңарту.

Е, Резиденттікті/қолтаңбаларды бұзу

1. Экспорт/арна блогы; 2) кілттерді/сертификаттарды ротациялау; 3) аудит және пост-мортем; 4) саясатты жаңарту.

19) Енгізу чек-парағы

1. Ағындардың түрлерін және топтастыру кілтін анықтаңыз.
2. Демпотенттілікті/дедупты және К/дау терезелерімен аяқтауды қосыңыз.
3. Кезектерді, QoS, квоталар мен backpressure.
4. mTLS/қолтаңбаларын және резиденттік саясатын іске қосыңыз.
5. Схемаларды/тізілімдерді (streams, offsets, dlq) және SLI/SLO телеметриясын енгізіңіз.
6. Downtime-сіз canary/blue-green және схемаларды көшіруді ұйымдастырыңыз.
7. Деградациялық режимдер мен инциденттердің плейбуктерін пысықтаңыз.

20) Глоссарий

Backpressure - кіріс жүктемесін бақылау (кредиттер/белгілер/лимиттер).
DLQ - проблемалық хабарлар үшін «өлі кезек».
CRDT - қайшылықтарды үйлестірусіз шешетін деректер құрылымы.
Finality - оқиғаның/күйдің қайтымсыздығы.
Exactly-once әсері - жеткізу at-least-once үстінен қауіпсіз нәтиже.
Watermark - кейінгі оқиғалар үшін өңдеу прогресінің белгісі.
Outlier-ejection - тозған инстанцияларды пулдан алып тастау.

Қорытынды: түйіндер арасындағы деректер ағыны - бұл жай ғана «кезек пен тыңдаушы» емес, тәртіптің, ақтаудың, теңсіздіктің, қауіпсіздіктің және бақылаудың жүйелі тәртібі. Партияланудың стандартты кілттері, QoS/квоталар, қатаң схемалар және SLO деградациялық режимдермен және плейбукпен бірге экожүйеге масштабта және аудитке арналған деректерді берудің тұрақты арналарын береді.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.