GH GambleHub

Меъмории чорабинӣ

Архитектураи чорабинӣ (EDA)

1) Ҳодиса чист ва чаро EDA

Ҳодиса - як далели тағйирнопазире, ки аллакай дар домен рух додааст ("Player EDA ҳамгироиро дар атрофи нашри ин далелҳо ва аксуламал ба онҳо эҷод мекунад:
  • пайвасти заифи хидматҳо,
  • миқёси истеъмолкунандагон мустақилона,
  • такрорӣ/азнавташкилдиҳии пешгӯиҳо,
  • аудити шаффоф.

EDA API-ҳои синхрониро бекор намекунад - он онҳоро тавассути ворид кардани вобастагии хизматрасонӣ ба қабати асинхронӣ пурра мекунад.


2) Намудҳои ҳодиса

Домен: Далелҳои назарраси корӣ (Фармоиш дода шудааст, Bonus

Интегратсия: "лаҳзаҳо "/тағирот барои системаҳои беруна (User

Техникӣ: Давраи зиндагӣ ва телеметрия (Зарбаи дил, Pipeline .Failed).

Фармонҳо (на рӯйдодҳо, балки дар наздикӣ): дастурҳои "do X" (Capture

Тавсия: чорабиниҳои домейн аввалиндараҷа мебошанд; интегратсия бо пешгӯиҳо барои истеъмолкунандагони мушаххас ташаккул меёбад.


3) Шартномаҳо ва схемаҳои чорабинӣ

Схема: Avro/Protobuf/JSON Schema + Феҳристи схема; стратегияи мутобиқат: 'BACKWARD' барои таҳаввулоти истеъмолкунандагон, 'FULL' дар мавзӯъҳои муҳим.
Cloud ​ ​ Events (id, манбаъ, намуд, вақт, мавзӯъ, datacontenttype) - сарлавҳаҳои ягона.
Метамаълумоти зарурӣ: 'event _ id' (ULID/UUID), 'рух дод _ at', 'истеҳсолкунанда', 'schema _ version', 'correlation _ id '/' causation _ id', 'idempotency _ key'.
Версия: майдонҳои иловагӣ, манъи номгузорӣ/танаффусҳои семантикӣ; намудҳои нав - мавзӯъҳо/намудҳои нав.

Намуна (Авро, порча):
json
{
"type":"record","name":"PaymentCaptured","namespace":"events.v1",
"fields":[
{"name":"event_id","type":"string"},
{"name":"occurred_at","type":{"type":"long","logicalType":"timestamp-micros"}},
{"name":"payment_id","type":"string"},
{"name":"amount","type":{"type":"bytes","logicalType":"decimal","precision":18,"scale":2}},
{"name":"currency","type":"string"},
{"name":"player_id","type":"string"}
]
}

4) Таҳвил, фармоиш ва пайдарҳамӣ

Ҳадди аққал як маротиба ҳамчун номутобиқатии дастӣ лозим аст.
Фармоиш: дар дохили як ҳизб (Кафка) ё навбат (RabbitMQ) кафолат дода мешавад, аммо метавонад бо ақибнишинӣ вайрон карда шавад; калиди ҳодиса бояд гранулаи домени тартиботро инъикос кунад (масалан, 'player _ id').
Мутобиқат: барои пул/қарз - танҳо тавассути маҷаллаҳо/сагҳо/ҷубронпулӣ; пешгирӣ LWW.

Модели хониш: Пешгӯиҳо ва кэшҳо метавонанд оқибат бошанд - "навсозиро идома диҳед"... нишон диҳед ва стратегияҳои RNOT-ро барои роҳҳои қатъӣ истифода баред.


5) Outbox/Inbox i CDC

Outbox: хизматрасонӣ ба пойгоҳи додаҳои худ ва ҷадвали баромад дар як транзаксия § коргар ба автобус нашр мекунад.
Паёмдони қуттӣ: Натиҷаи коркарди мағозаҳои истеъмолкунанда барои такрорӣ.
CDC (Change Data Capture): ҷараёни тағирот аз пойгоҳи додаҳо (binlog/WAL) ба автобус барои сохтани ҳамгироӣ бидуни тағироти барнома.
Idempotency: коркард бо 'idempotency _ key '/' event _ id', ҷаҳони берунаро то собит тағир надиҳед.


6) CQRS i Event Sourcing

CQRS: модели алоҳидаи навиштан ва пешгӯиҳои хондан; пешгӯиҳо аз рӯйдодҳо сохта мешаванд ва метавонанд ақиб монанд.
Сарчашмаи чорабинӣ: ҳолати умумӣ = ҷамъбасти рӯйдодҳои он. Тарафдор: аудити пурра/такрорӣ; муқобил: мураккабии муҳоҷират/схемаҳо/лаҳзаҳо.
Амал: ES - на дар ҳама ҷо, балки дар куҷо таърих ва ҷуброн муҳим аст; CQRS - қариб ҳамеша дар EDA.


7) Сагас: Оркестр ва хореография

Оркестр: ҳамоҳангсоз фармонҳо мефиристад ва рӯйдодҳои вокунишро интизор мешавад; барои равандҳои мураккаб қулай аст (KYC → Амонат → Бонус).
Хореография: хидматҳо ба рӯйдодҳои ҳамдигар вокуниш нишон медиҳанд; осонтар, аммо пайгирӣ кардан душвортар аст.
Ҳамеша ҷубронпулӣ ва мӯҳлатҳои қадамро муайян кунед.


8) Тарҳи топология (Кафка/Харгӯш)

Кафка

Мавзӯъ барои як чорабинии домейн: 'пардохтҳо. асир гирифта шудааст. v1 ',' бозингарон. санҷида шудааст. v1 '.
Калиди тақсимкунӣ: 'player _ id '/' wallet _ id' - дар куҷо фармоиш муҳим аст.
'такрорӣ. омил = 3 ',' мин. insync. нусхаҳои = 2 ', истеҳсолкунанда' acks = ҳама '.
Нигоҳ доштан: бо мурури замон (масалан, 7-90 рӯз) ва/ё фишурдасозӣ (ҳолати охирин аз рӯи калид).
Мавзӯъҳо барои такрорӣ ва DLQ бо бозгашт.

Харгӯш MQ

Мубодила: 'мавзӯъ '/' мустақим', равона кардани пардохтҳо '. асир гирифта шудааст. v1 '.
Барои мухлиси васеъ - 'мавзӯъ' + якчанд навбатҳо; барои RPC/фармонҳо - навбатҳои алоҳида.
Навбатҳои кворум барои HA; TTL + мубодилаи мактубҳои мурда барои бозхонд.


9) Мушоҳидакорӣ ва SLO EDA

SLI/SLO:
  • Ниҳонии ниҳоӣ (occurred_at → коркард шудааст): p50/p95/p99.
  • Қафо/синну сол: ақибмонии истеъмолкунандагон (ақибмонии истеъмолкунандаи Кафка, синну соли ақибмонии харгӯш).
  • Интишори/коркарди интиқол.
  • Сатҳи DLQ ва таносуби такрорӣ.
  • Муваффақияти амалиётҳои тиҷоратӣ (масалан, "пасандоз тасдиқ шудааст ≤ 5c").
Амалияҳо:
  • Таносуби рӯйдодҳо тавассути 'trace _ id '/' correlation _ id' (OT bel).
  • Мисолҳо аз ҳамоҳангсозӣ → ченакҳо.
  • Панели панели "Истеҳсолкунанда → Брокер → Истеъмолкунанда" бо огоҳиҳои сӯхтан.

10) Бозсозӣ, нигоҳдорӣ ва бозгашт

Бозсозӣ барои барқарор кардани пешгӯиҳо/ислоҳи иштибоҳҳо: ба проексия/фазои нав гузаред ва баъд хонишро иваз кунед.
Нигоҳдорӣ: Талаботи ҳуқуқӣ/тиҷорӣ (GDPR/PCI); майдонҳои ҳассос - рамзгузорӣ ва/ё токенизатсия.
Backfill: мавзӯъҳо/навбатҳои якдафъаина, маҳдудиятҳои RPS-ро тоза кунед, то ки prod-ро пешгирӣ накунед.


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

TLS in-transit, MTLS барои муштариёни дохилӣ.
Иҷозат: ҳар як мавзӯъ/барои мубодилаи ACL; бисёрҷониба тавассути фазои ном/vhost.
PII: майдонҳоро дар чорабинӣ кам кунед; метамаълумоти лифофа алоҳида, бори зарурӣ рамзгузорӣ карда мешавад.
Дастрасии аудит ба рӯйдодҳо, калидҳои "пуриқтидор" -ро манъ мекунад.
Сиёсати нигоҳдорӣ ва ҳуқуқи нест кардан (GDPR): ё маълумотномаҳои маълумот ё рӯйдодҳои қабрро нигоҳ доред ва дар пешгӯиҳо нест кунед.


12) Озмоиш дар EDA

Санҷишҳои шартномавӣ: истеъмолкунандагон интизориҳои худро аз схемаҳо тасдиқ мекунанд (аз ҷониби истеъмолкунандагон).
Санҷишҳои такрорӣ: гузаронидани намунаҳои таърихӣ тавассути версияи нави дастӣ/схема.
Сенарияҳои бесарусомонӣ: таъхир/талафи брокер, тарки гиреҳ, ақибмонии истеъмолкунандагон → SLO дар дохили он боқӣ мемонанд.
Дуд дар CI: лӯлаи кӯтоҳ то ба охир дар мавзӯъҳои вақт.


13) Муҳоҷирати "ҳамгироии CRUD → EDA"

1. Муайян кардани далелҳои домейн.
2. Ҷойгиркунии қуттиҳо дар хадамоти манбаъ.
3. Рӯйдодҳои ҳадди аққали доменро нашр кунед ва 1-2 пешгӯиҳоро пайваст кунед.
4. Оҳиста-оҳиста интегратсияи синхронизатсияи нуқтаро хомӯш кунед ва онҳоро бо обунаҳо иваз кунед.
5. Феҳристи намуди схема ва сиёсати мутобиқат.
6. Васеъ кардани чорабиниҳои иловагӣ танҳо бо майдонҳо; танаффус - танҳо тавассути намудҳои нав.


14) Анти-намунаҳо

Ҳодисаҳо = "DTO API" (хеле фарбеҳ, аз модели дохилӣ вобаста аст) - истеъмолкунандагонро шикаст.
Набудани Феҳристи схема ва мутобиқат - ҳамгироии "нозук".
Нашр аз рамз ва навиштан ба пойгоҳи додаҳо атомӣ нест (outbox нест) - шумо ҳодисаҳоро аз даст медиҳед.
"Маҳз як маротиба дар ҳама ҷо" - нархи баланд бидуни фоида; беҳтар аз ҳадди аққал як маротиба + idempotency.
Як калиди тақсимоти "универсалӣ" → қисмати гарм.
Такрори рост ба дурнамои истеҳсолӣ - шикастани SLO-ҳои онлайн.


15) Рӯйхати назорати амалисозӣ (0-45 рӯз)

0-10 рӯз

Муайян кардани рӯйдодҳои домейн ва калидҳои онҳо (гранулҳои тартибот).
Феҳристи схемаро ҷойгир кунед ва стратегияи мутобиқатро тасдиқ кунед.
Ба хидматҳои 1-2 outbox/паёмдони илова кунед; лифофаи ҳадди ақали Cloud-Events.

11-25 рӯз

Retry/DLQ, backoff, idempotency-ро ворид кунед.
Панели панелҳо: ақибмонӣ/синну сол/охири-ба-охир; огоҳиҳои сатҳи сӯхтан.
Ҳуҷҷатҳои ҳодиса (каталог), соҳибон ва равандҳои баррасии схема.

26-45 рӯз

Бозсозӣ/азнавсозии лоиҳаи аввал; такрори дафтарчаи runbook ва backfill.
Сиёсати амният (TLS, ACL, PII), нигоҳдорӣ, тартиботи GDPR.
Бетартибиҳои мунтазам ва рӯзҳои бозӣ барои брокер ва истеъмолкунандагон.


16) Нишондиҳандаҳои камолот

100% рӯйдодҳои домейн аз рӯи схемаҳо тавсиф ва ба қайд гирифта шудаанд.
Outbox/паёмдони қуттӣ ҳамаи истеҳсолкунандагон/истеъмолкунандагони Tier-0/1 фаро мегирад.
SLO: p95 таъхири ниҳоӣ ва ақибмонии истеъмолкунандагон дар доираи ҳадафҳо ≥ 99%.
Такрори/Backfill бе вақти корӣ имконпазир аст; китобҳои санҷидашуда мавҷуданд 'ва.
Версия: майдонҳои нав - бе шикастан; истеъмолкунандагони кӯҳна намеафтанд.
Амният: TLS + mTLS, ACL барои як мавзӯъ, гузоришҳои дастрасӣ, сиёсати PII/нигоҳдорӣ.


17) порчаҳои мини

Истеҳсолкунандаи Кафка (нашри боэътимод, ғояҳо):
properties acks=all enable.idempotence=true max.in.flight.requests.per.connection=1 compression.type=zstd linger.ms=5
Коркарди истеъмолкунандагон (idempotency, псевдокод):
python if inbox.contains(event_id): return # дедуп process(event)            # побочные эффекты детерминированы inbox.commit(event_id)        # atomically with side-effect commit_offset()
Такрори харгӯш тавассути DLX (идея):
  • 'queue: вазифаҳо' → оид ба вазифаҳои nack → DLX '. такрор кунед. 1м '(TTL = 60s) → бозгашт ба' tasks '; минбаъд '5м/15м'.

18) Хулоса

EDA интегратсияро ба ҷараёни далелҳои корӣ бо шартномаҳои возеҳ ва пайдарҳамии идорашаванда табдил медиҳад. Таҳкурсӣ созед: схемаҳо + сабти ном, қуттиҳо/паёмдонҳо, калидҳои фармоиш, коркардкунандагони номатлуб, SLO ва мушоҳидаҳо, нигоҳдорӣ ва такрори бехатар. Он гоҳ ҳодисаҳо "манбаи ҳақиқат" -и шумо барои миқёс, таҳлил ва хусусиятҳои нав - бидуни робитаҳои нозук ва муҳоҷирати шабона мешаванд.

Contact

Тамос гиред

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

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

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

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

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