GH GambleHub

მონაცემთა ნაკადები კვანძებს შორის

(განყოფილება: ეკოსისტემა და ქსელი)

1) მიზანი და მიზანი

კვანძებს შორის მონაცემთა ნაკადები არის კონტროლირებადი არხები, სახელმწიფოები და არტეფაქტები ეკოსისტემის როლებს შორის (მიმღები/მიმღები/ინდექსატორები/ხიდები/კარიბჭეები/საცავი/ანალიტიკა). მიზნები:
  • პროგნოზირება: სტაბილური SLO შეფერხების/წარმატების/სიახლის თვალსაზრისით.
  • საიმედოობა: დანაკარგების წინააღმდეგობა, დუბლიკატები, რეგორგები.
  • უსაფრთხოება და შესაბამისობა: დაშიფვრა, ხელმოწერები, რეზიდენტობა.
  • მასშტაბურობა: გეო განაწილება, განაწილება, QoS.

2) ნაკადების ტაქსონომია

1. Control Plane: კონფიგურაცია, ძაფები, მარშრუტიზაციის/ლიმიტის პოლიტიკა.
2. Data Plane - ღონისძიება: აფეთქების ღუმელის მოვლენები ('deposit.', 'payout.', 'bridge.').
3. Data Plane - ნაკადი: გრძელი ნაკადები (GRPC/WebSocket) სიგნალებისა და ცოცხალი მეტრიკისთვის.
4. Batch/Backfill: გადმოტვირთვის ისტორიული ნაჭრები, რაფები, snaphots.
5. რეპლიკაცია/ანტი-ენტროპია: სახელმწიფო სინსი, მერკლიზაცია, CRDT ნაკადები.
6. Telemetria/დაკვირვება: logs/metrics/trais side-band, არ ერევა მთავარ UX.

თითოეული ტიპი შეესაბამება QoS კლასებს და საკუთარი რეაგირების/წესრიგის წესებს.

3) ტოპოლოგია და მარშრუტიზაცია

Hub and Spoke: რეგიონალური კერა საბურავები; სპოკები - როლების კვანძები.
Mesh/P2P: ნაწილობრივი ქსელის სიმძიმე რეპლიკაციისთვის/გოსიპისთვის.
Edge-Tiered: თხელი edge-limit/ქეში - სქელი რეგიონალური მტევანი.
Geo-Routing: Anycast/Latency-Aware LB + რეზიდენციის წესები.

საკვანძო - ნაწილობრივი განლაგება: 'partition _ key = chainId' tenant 'topic' entityID 'იძლევა პროგნოზირებად წესრიგს და მასშტაბს.

4) ტრანსპორტი და ფორმატები

HTTP/2/3, gRPC/QUIC - დაბალი ლატენტობა, მულტიპლექსაცია, კეპალივი.
Kafka/Pulsar/NATS - ხაზები კონფიდენციალურობით/პარტიებით/საკონსულტაციო ჯგუფებით.
WebSocket არის push მოვლენები და ცოცხალი არხები.
ფორმატები: Protobuf/Avro (ევოლუციის სქემები), JSON გარე API- სთვის.
Hash მისამართები და Merkle ქვითრები მთლიანობის გადამოწმებისთვის.

5) შეკვეთა, მიწოდება და დასრულება

მიწოდების მოდელი:
  • At-least-once (ნაგულისხმევი; საჭიროა idempotence/dedup).
  • Exactly-once ეფექტი Outbox/Inbox + Idempotent კონსიუმერის საშუალებით.
  • ბრძანება: გარანტირებულია პარტიაში; ინტერპარტიული პროცედურა გარანტირებული არ არის.
  • ფინალიზაცია: '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). ცალკეული აუზები/limites RPS/bytes/s/ხელმოწერები.
Admission Control: „ძვირადღირებული“ მოთხოვნების ადრეული უარყოფა, დიაპაზონი/ზომა.

8) მონაცემთა კოორდინაცია და მოდელები

Read-you-write ნაწილში/კვანძში.
საღამოს კონსულტაცია რეგიონებს/პარტიებს შორის.
CRDT ზოგიერთი კომპლექტის რეპლიკაციისთვის (მრიცხველები, ნაკრები).
Snaphots + ჟურნალები სწრაფი bootstrap და დეტერმინისტული რეპლეი.

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 }

Routing/რეზიდენცია

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 ms; 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: დაგვიანებული მოვლენების დამუშავება.
Idempotent Side-Effects: გარე მოთხოვნები მხოლოდ გასაღებით და პასუხის ჟურნალით.

15) დეგრადაციის რეჟიმები

Finalized-only mode: ჩვენ ვაძლევთ მხოლოდ საბოლოო მოვლენებს.
Cache-only საცნობარო წიგნებისთვის, მძიმე მეთოდების გაყინვა.
Throttle P2 და „დიეტის რეჟიმი“ ნაკადებისთვის (შემცირებული განახლების სიხშირე).
Read-only მცირე API- სთვის.

16) გამოშვებები და მიგრაცია დასრულების გარეშე

Blue-Green/Canary ნაკადები და კონსიუმერები.
Schema-first: მხოლოდ ველების დამატება; MAJOR არის ტოპიკის პარალელური ვერსიები.
Offset's მიგრაცია: shadow კონსუტერები, lag/წარმატების შედარება, გადართვა.

17) ოპერაციული რეგულაციები

ყოველდღიურად: SLO ანგარიში (latency/success/lag/freshness), ხელმოწერის აუდიტი, DLQ შემოწმება.
ყოველკვირეულად: წვეულებების/კვოტების გადასინჯვა, DR ტესტი (snapshot bootstrap), Dedup Efficiency- ის ანალიზი.
ყოველთვიურად: chaos ტესტები (loss/jitter, ბროკერის უარი, reorg-burst), ფინანსური ფანჯრების გადასინჯვა.
გამოშვებამდე: კანარი - 120 წუთი, SLO კარიბჭე, დაბრუნების გეგმა.

18) Playbook ინციდენტები

A. Queue-Lag/Consumer-Lag აფეთქება

1. კონსიუმერების გაზრდა/KEDA; 2) პარტიების გადანაწილება; 3) გაყინვა P2 და ბულკის ჯობი; 4) ცხელი გასაღებების ანალიზი.

B. Rost p95 Latency P0

1. P2 throttle, პრიორიტეტული P0; 2) განაწილება საკეტები/ბროკერები; 3) ქეში მხოლოდ საცნობარო წიგნებისთვის; 4) outlier-ejection.

C. მაღალი DLQ/დუბლირება

1. იდემპოტენტურობის გასაღები/TTL; 2) ბაბუის გაძლიერება; 3) შეზღუდოს ხმაურიანი პროდიუსერი; 4) ფრჩხილის შემდეგ.

D. Drift სქემები/კონტრაქტები

1. ჩართეთ strict-mode (შეწყვიტეთ არასასურველი); 2) აცნობეთ პროდიუსერს; 3) ადაპტერის გამოშვება; 4) განაახლეთ ლინტერი.

E. რეზიდენციის/ხელმოწერების დარღვევა

1. ექსპორტის/არხის ბლოკი; 2) გასაღების/სერიის როტაცია; 3) აუდიტი და პოსტ-mortem; 4) პოლიტიკოსის განახლება.

19) განხორციელების სია

1. განსაზღვრეთ ნაკადის ტიპები და გარიგების გასაღები.
2. ჩართეთ idempotence/dedup და ფინალიზაცია K/დავის ფანჯრებთან.
3. შემდეგი რიგები, QoS, კვოტები და დაბომბვა.
4. MTLS/ხელმოწერები და რეზიდენციის პოლიტიკა.
5. შეიყვანეთ სქემები/რეესტრები (streams, offsets, dlq) და SLI/SLO ტელემეტრია.
6. მოაწყეთ 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 არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.