GH GambleHub

Ҳамоҳангсозии маълумот тавассути API

1) Чаро синхронизатсия лозим аст ва ҳадафҳо кадомҳоянд

Мувофиқати домейн: профил, ҳамён, феҳристҳо, маҳдудиятҳо, KYC.
Паст кардани ақибмонӣ: қариб дар вақти воқеӣ барои равандҳои муҳим (пардохтҳо, мукофотпулӣ).
Устуворӣ: аз сар гузаронидани қатъ шудани шабака/провайдер бидуни талафи рӯйдодҳо.
Иқтисодиёт: Ҳадди аққал egress/CPU-ро тавассути deltas ва packetization.

Нишондиҳандаҳои муваффақият: ақибмонӣ (ҳо) байни манбаъ ва истеъмолкунанда, тару тоза, таносуби нусхаҳо, фоизи муноқишаҳо, арзиши GB/соат кабуд.

2) Моделҳои ҳамоҳангсозӣ

2. 1 Пул (овоздиҳӣ)

Мизоҷ тағиротро бо фосилаҳо талаб мекунад.

Тарафдор: содда, назорати сарборӣ.
Омӯз: ақибмонӣ, назарсанҷиҳои "холӣ", хатари партофтан бо суръати баланди тағирот.
Такмилҳо: If-Modified-Аз он вақт, Etag/If-None-Match, change_token.

2. 2 тела (webhooks/рӯйдодҳо)

Манбаъ рӯйдодҳоро ба гиранда таҳрик медиҳад.

Тарафдор: қариб дар вақти воқеӣ, иқтисоди раъйдиҳӣ.
Омӯз: таҳвили эҳтиёҷот бо бозпас, такроркунӣ, амният (имзо, MTLS).
Талабот: истеъмолкунандагони номатлуб, бозгашти экспоненсиалӣ, такрорӣ.

2. 3 CDC/ҷараён (тағир додани сабти маълумот)

Тасвири тағирот аз сабти сабти амалиёт/рӯйдодҳо (Кафка, Дебезиум).

Тарафдор: пуррагӣ, фармоиш, миқёс.
Омӯз: мураккабӣ, ба шумо назорат аз болои намудҳои амалиёт лозим аст (ворид/навсозӣ/нест кардан/қабр).

2. 4 Гибрид

Вебхукҳо ҳамчун "триггер", овоздиҳӣ ҳамчун нокомӣ ва мусолиҳа.

3) Дельтҳои афзоянда

3. 1 Нишонаи обӣ (вақт)

Мизоҷ 'last _ seed _ ts' -ро нигоҳ медорад ва дархостҳо 'updated _ at> нишонаи об'.

Хатарҳо: кашиши соат - истифодаи UTC ва NTP; равзанаи такрорӣ барои 1-2 дақиқа ва тарҳро бо ID + версия гиред.

3. 2 Иваз кардани токен/курсор

Аломати пайдарпаии устувор: '? курсор = eyJvZmZzZXQiOjEwMDB9 '.

Тарафдор: устуворӣ барои тағир додани тартибот, миқёс.
Талабот: курсорҳои нопурра, TTL ва такрори бехатар.

3. 3 Ҷуброни рақамгузорӣ (худкор афзоиш)

'ид> last_id'. Оддӣ, аммо ҳангоми буридан ва "сӯрохиҳо" дар пайдарпаӣ вайрон мешавад.

4) Пагинатсияи калони намуна

Keyset/курсор (афзалиятнок): '? баъд аз = курсор & лимит = 1000 '- устувор бо тағирот.
Ҷуброн/лимит - оддӣ, аммо гарон ва бояд иваз карда шавад.
Ҳамеша калиди навъи устуворро муайян кунед (масалан, '(updated_at, id)').

Намунаи ҷавоби курсор:
json
{
"items": [ { "id": "u_1", "updated_at": "2025-11-03T16:59:10Z" } ],
"next_cursor": "eyJ1cGRhdGVkX2F0IjoiMjAyNS0xMS0wM1QxNjo1OToxMFoifQ==",
"has_more": true
}

5) Тағйир додани семантика: боло рафтан, якҷоя кардан, нест кардан

5. 1 Upsert/якҷояшавӣ

'PUT/resource/{ id}' ивазкунии пурра аст.
'PATCH/resource/{ id}' - қисман навсозӣ (часпакҳо бо санҷиш).
Idempotency аз ҷониби 'Idempotency-Key' барои ҳама менависад.

5. 2 Несткунӣ

Нест кардани нарм (майдони 'нест кардашуда = ҳақиқӣ', 'нест кардашуда _ at') - захира кардани таърих; раковина санги қабр медиҳад.
Нест кардани сахт - пеш аз нопадид шудани ҳодиса 'deleted' диҳед.

Намунаи санги қабр:
json
{ "id":"u_1", "event":"deleted", "deleted_at":"2025-11-03T17:00:00Z" }

6) Назорат ва рақобати версия

6. 1 ET bag/If-Match (қуфлҳои оптимистӣ)

Хондани 'ET' ag: "v123" '.
Навсозӣ аз 'If-Match: "v123"' - муҳофизат аз "навсозиҳои гумшуда".
Дар ҳолати муноқиша - 409 Низоъ бо 'error _ code: "CONFLICT_VERSION"'.

6. 2 Версияи сабтҳо

'Версия '/' updated _ at' - дар ҳисобкунии дельта ва такрорӣ.

6. 3 Ихтилоф

Сиёсатҳо: навиштани ғолибият, сервер-ғолиб, якҷоя-стратегия аз рӯи майдонҳо (масалан, сумма → иловагиҳо, парчамҳо → афзалияти манбаъ).

7) Фармоиш ва ихтисор

7. 1 Тартиби расонидан

Кафолатҳо: ҳадди аққал як маротиба плюс idempotency → de facto стандарт.
Барои ҷараёни интиқоли пули нақд - маҳз як маротиба тавассути мағозаи idempotency.

7. 2 Калидҳои Idempotence

Таркиби майдонҳои домейн: 'source _ id' event _ type 'пайдарпаӣ'.
Нигоҳдории TTL 24-72 соат (ё бештар дар SLA-ҳо).

7. 3 Deduplication

Нигоҳ доштани версияи охирин/seq, ки ба қабулкунанда татбиқ мешавад; пиронсолонро партоед.

8) Такрориҳо, танаффусҳо, ақибмонӣ

Интиқолшаванда: 5xx/429/408/танаффус; Интиқолнашаванда: 400/401/403/404/ 409/422/410/412.
Бозгашти экспоненсиалӣ + jitter: 1s, 2s, 4s... ба 30-60-ум.
Retry-Баъд аз эҳтиром барои 429/503.
Танаффуси муштариён: пайвастшавӣ 3-5s, дархости умумӣ 10-30; лимити умумии кӯшишҳо 3-6.

9) Назорати ақибмонӣ ва SLA

9. 1 SLI/SLO

Ақибмонии SLI: ақибмонии миёна/p95 байни 'рух дод _ at' ва 'дар истеъмолкунанда татбиқ карда мешавад.'

SLO: масалан, 'p95 lag ≤ 60s (28d)', "ҳиссаи рӯйдодҳои гумшуда = 0", "ҳиссаи нусхаҳои ≤ 0. 01%».
Буҷаи хато: барои релизҳо/таҷрибаҳо сарф кунед.

9. 2 Метрика

'sync _ lag _ seconds', 'events _ geted _ total', 'events _ appliced _ total', 'duplicates _ total', 'reets _ total', 'backlog _ size', 'cursor _ advance _ rate'.

10) Мусолиҳа ва бозгашт

Мусолиҳаи рӯз/соат: ҷамъи/тирезаҳои тиреза.
Мусолиҳа API: 'GET/оштӣ? аз =... & ба =... 'санҷишҳо ва вариантҳоро бозмедорад.
Backfill: азнавборкунии боэътимоди маълумоти таърихӣ дар маҷмӯъ бо курсор, бе манбаи DDOS; маҳдудиятҳоро риоя кунед.

11) Схемаҳо ва намунаҳо

11. 1 Чорабиниҳои Webhook (имзошуда)

json
{
"event": "user. updated",
"id": "evt_01HX",
"occurred_at": "2025-11-03T18:00:05Z",
"sequence": 123456,
"data": { "id": "u_1", "email": "a@b. com", "updated_at": "2025-11-03T18:00:02Z" }
}
Унвонҳо:
  • 'Имзои X: sha256 = '
  • 'X-Event-Id: evt_01HX'
  • 'X-Retry: 0.. Н'

11. 2 Интихоби афзоянда (овоздиҳӣ)

'GET/v1/корбарон? updated_after=2025-11-03T17: 58:00Z&cursor=...&limit=1000'

11. 3 Ғазаби Idempotent


POST /v1/users
Idempotency-Key: upsert-u_1-20251103T1800Z
{ "id":"u_1","email":"a@b. com","version":124 }
→ 201/200 (stable)

12) Бехатарӣ ва риояи

Auth: OAuth2 миқёс/JWT; барои каналҳои пайванд - mTLS тибқи дархост.
Сарлавҳаҳо: Сарлавҳаҳои HMAC барои webhooks, сирри гардиш.
Кам кардани PII, ниқоб дар гузоришҳо; GDPR/DSAR Боркунӣ/Нест кардан.
RBAC/ABAC: дастрасии иҷорагир/ташкилот, квотаҳои қатъӣ.

13) Мушоҳида ва гузоришҳо

Лейблы: 'env', 'хидмат', 'иҷорагир', 'манбаъ', 'курсор', 'seq', 'event _ type'.
Коррелятсия: 'trace _ id' аз вуруд → ба гузоришҳо ва нишонаҳо дахл дорад.
Панели панелҳо: ақибмонӣ, ақибмонӣ, суръати курсор, хатогиҳои навъи, 429/5xx, арзиш (egress/min).

14) FIN Ops: арзиши синхронизатсия

Бастабандӣ (андозаи партия 100-1000) + фишурдасозӣ (gzip/br).
Caching ва ET jag барои саҳифаҳои бетағйир.
Сарбории борик: танҳо майдонҳои тағирёфта, пайванд ба манбаи пурраи талабот.
Маҳдудиятҳои мувофиқат ва "тирезаҳои шабона" барои бозгашт.

15) Озмоиш ва сифат

15. 1 Шартномаҳо ва ҳолатҳои манфӣ

Тасдиқ кардани схемаҳои JSON, майдонҳои зарурӣ, устувории 'хатогӣ _ код'.
Санҷишҳо: фармоишӣ, нусхабардорӣ, рӯйдодҳо, муноқишаи версия, 429/5xx.

15. 2 Хаос/бозиҳо

Тазриқ: таъхири шабака, 10-30% рӯйдодҳо, тағир додан.
Меъёрҳо: тартибот/тамомияти нигоҳдорӣ? талафот нест? қафо дар дохили SLO?

16) Рӯйхати санҷиши амалисозӣ

  • Модели интихобшуда (тела/кашидан/гибрид) ва манбаи ҳақиқат.
  • Дельтҳои афзоянда: нишонаи обӣ ё курсор/нишона.
  • Саҳифа: курсор/тугмаи дорои дараҷаи устувор.
  • Idempotency-store, калидҳо ва TTL; тарҳ аз ҷониби '(id, version/seq)'.
  • Сиёсати муноқишаи ET/If-Match ва (LWW/server-wins/merge).
  • Retry/backoff/jitter, эҳтиром 'Retry-After'.
  • Нишондиҳандаҳо ақибмонда/ақибмонда/такрорӣ/муноқишаҳо, панели панелҳо ва огоҳиҳо.
  • Оштӣ API + мусолиҳаҳои ҳаррӯза.
  • Амният: OAuth2/JWT, имзоҳои webhook, MTLS, сиёсати PII.
  • Финҳо: партия + фишурдасозӣ, маҳдудиятҳои мувофиқат, квотаҳои egress.
  • Маҷмӯи санҷиш: фармоиш, нусхабардорӣ, хомӯшӣ, бозгашт.

17) Нақшаи амалисозӣ (3 такрорӣ)

1. MVP (1-2 ҳафта):

Пагинатсияи курсор, дельтаҳои нишонаи обӣ, боло рафтани номутаносиб, ақибмонии асосӣ/ақибмонӣ, такрорӣ + ченакҳои ақибмонӣ.

2. Ҷадвал (2-3 ҳафта):

Вебхукҳо ҳамчун триггер + раъйдиҳӣ, имзои HMAC, мусолиҳа, ET .ag/If-Match, панели панелҳо ва ҳушдорҳо бо ақиб.

3. Pro (3-4 ҳафта):

CDC/ҷараёнро (Kafka/Debezium) барои доменҳои гарм, auto-backfill, скриптҳои DR, оптимизатсияи Fin

18) Мини-FAQ

Чиро бояд интихоб кард: нишонаи обӣ ё курсор?
Курсор/тугмача ба тағир ва миқёс бештар тобовар аст; нишонаи обро оғоз кардан осонтар аст, аммо такрори такрорӣ ва мурданро илова кунед.

Оё он маҳз як маротиба лозим аст?
Умуман, гарон. Амалия - ҳадди аққал як маротиба + аблаҳӣ; маҳз - як маротиба - танҳо барои таъсири пулӣ.

Чӣ тавр муноқишаҳоро кам кардан мумкин аст?
ETag/If-Match -ро истифода баред, тарҳро бо майдонҳо якҷоя кунед, аз таъсири паҳлӯии "пинҳон" дурӣ ҷӯед.

Ҷамъ

Синхронизатсияи боэътимод deltas тадриҷӣ + пагинатсияи дуруст + idempotency ва назорати версия мебошад, ки бо мушоҳида, дурахшон ва нақлиёти иқтисодӣ такмил дода шудааст. Модели дурустро интихоб кунед (push/pull/CDC), SLO-ро ба ақиб кашед, сиёсати муноқишаҳо ва санҷишҳои сенарияи ифлосро амалӣ кунед - ва мубодилаи маълумотҳои шумо пешгӯишаванда, устувор ва аз ҷиҳати иқтисодӣ самаранок мегардад.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.