GH GambleHub

Ядрои ба рӯйдод нигаронидашуда

Ядрои рӯйдодҳо чист

Core-Drive Core (EDC) "сутунмӯҳра" -и меъморӣ мебошад, ки дар он далелҳои корӣ ҳамчун рӯйдодҳои тағйирнопазир сабт ва паҳн карда мешаванд ва боқимондаи функсия (хониш, ҳамгироӣ, таҳлил, кэш, огоҳинома) дар болои боло сохта мешаванд. ҷараёни ин чорабиниҳо. Ядро ​ ​ шартномаи ҳодиса, қоидаҳои таҳвил ва инвариантҳои фармоиш/номутаносибиро муқаррар мекунад, ки пайвасти заиф ва миқёсро таъмин мекунад.

Идеяи асосӣ: аввал фактро (аслӣ) нависед ва сипас мустақилона ғанӣ созед ва онро ба моделҳои дилхоҳ пешниҳод кунед. Ин пайвастшавиро коҳиш медиҳад ва тобовариро ба нобарориҳои қисман афзоиш медиҳад.

Ҳадафҳо ва хусусиятҳои EDC

Ҳақиқати далелҳо: Ҳар як ҳодиса сабти тағйирнопазири "ҳодиса" аст.
Пайвасти заиф: Истеҳсолкунандагон истеъмолкунандагонро намедонанд; тавсеаи система - тавассути илова кардани муштариён.
Миқёс: афзоиши уфуқӣ аз рӯи ҳизб/мавзӯъ, истеъмолкунандагони мустақил.
Мушоҳида ва аудит: идентификаторҳои ниҳоӣ, такрористеҳсолкунӣ, нигоҳдорӣ ва такрорӣ.
Таҳаввулоти идорашаванда: версияҳои схема, мутобиқат, фарсудашавӣ.

Ҷузъҳои меъморӣ

1. Брокери автобус/чорабинӣ: Кафка/NATS/Пулсар/SNS + SQS - каналҳо, зиёфатҳо, нигоҳдорӣ.
2. Феҳристи схема: JSON Schema/Avro/Protobuf барои мутобиқат ва таҳаввулот.
3. Контури Outbox/CDC: ислоҳи далелҳои атомӣ + нашр бидуни "навиштани дугона".
4. Пешгӯиҳо/Хонишҳо (CQRS): назари фаврӣ барои дархостҳои зуд.
5. Сагас/оркестр: ҳамоҳангсозии равандҳои дарозмуддат тавассути рӯйдодҳо/дастаҳо.
6. Ғанисозӣ: мавзӯъҳои инфиродӣ '.enriched '/' .deried' without, ки ба роҳи интиқодӣ таъсир мерасонанд.
7. Мушоҳида: пайгирӣ, воридшавӣ, ченкунӣ аз рӯйдодҳо ва ақибмонӣ.

Модели ҳодиса

Намудҳои чорабинӣ

Чорабиниҳои домейн: Далелҳои корӣ ('пардохт. ваколатдор ',' kyc. тасдиқ шудааст ').
Чорабиниҳои ҳамгироӣ: тамаркуз ба системаҳои беруна (устувор, оҳиста тағирёбанда).
Тағир додани сабти маълумот (CDC): тағироти техникӣ ба сабт (истифода барои муҳоҷират/ҳамгироӣ).
Аудит/Телеметрия: амалҳои актёр, амният, SLA.

Хусусиятҳои зарурӣ (аслӣ)

json
{
"event_id": "uuid",
"event_type": "payment. authorized. v1",
"occurred_at": "2025-10-31T11:34:52Z",
"producer": "payments-service",
"subject": { "type": "payment", "id": "pay_123" },
"payload": { "amount": 1000, "currency": "EUR", "method": "card" },
"schema_version": 1,
"trace_id": "abc123",
"partition_key": "pay_123"
}

Тавсияҳо: 'event _ id' дар миқёси ҷаҳонӣ беназир аст, 'partition _ key' фармоишро барои корхона муқаррар мекунад, 'trace _ id' таносубро таъмин мекунад.

Семантикаи таҳвил ва idempotency

Ҳадди аққал як маротиба (пешфарз барои бисёре аз брокерҳо): Истеъмолкунандагон бояд idempotent бошанд.
Дар аксар ҳолатҳо: танҳо барои телеметрияи дуюмдараҷа қобили қабул аст.
Маҳз як маротиба: дар сатҳи ҷараён ва нигаҳдорӣ тавассути транзаксияҳо/калидҳои idempotent/банкаҳои обдор ба даст оварда мешаванд (гаронтар, сабабҳои асоснок лозим аст).

Намунаи номутобиқатии истеъмолкунандагон

Ҷадвали Dedup аз рӯи 'event _ id '/' (event_id, consumer_id)' бо нигоҳ доштани мавзӯи TTL ≥.
Upsert ба ҷои гузоштан; таҳрири пешгӯиҳо бо 'пайдарпаӣ '/' рух дод _ at'.
Амалиётҳо дар доираи транзаксия: аломати "дид" + тағироти давлатӣ.

Фармоиш ва тақсимот

Тартиби кафолатнок дар дохили ҳизб.
'Partition _ key' -ро интихоб кунед, то ки ҳамаи ҳодисаҳои як агрегат ба як гурӯҳ дохил шаванд ('user _ id', 'pay _ id').
Аз "калидҳои гарм" дурӣ ҷӯед: hash бо намак/зер-калидҳо, агар ба шумо лозим аст, ки борро тақсим кунед.

Нақшаҳо ва таҳаввулот

Илова-аввал: майдонҳои нави ихтиёрӣ, манъи тағир додани намудҳо/семантика бидуни версияи асосӣ.
Мутобиқат: BACKWARD/FORWARD дар феҳристи схема; CI тағироти номувофиқро масдуд мекунад.
Номгузорӣ: 'домен. амал. v {major} '(' пардохт. ваколатдор шудааст. v1 ').
Муҳоҷират: ҷуфтҳои 'v1' ва 'v2' -ро ба таври мувозӣ нашр кунед, тавассути outbox дугона нависед, гузаришро 'v1' пас кунед.

Баромади CDC

Outbox (барои хизматрасониҳои транзаксионӣ тавсия дода мешавад)

1. Дар як амалиёти пойгоҳи додаҳо: сабти домейн ва ҳодисаро ба қуттӣ захира кунед.
2. Ношири замина outbox-ро мехонад, ба брокер нашр мекунад, нишонаҳои "фиристодашуда" -ро қайд мекунад.
3. Кафолатҳо: ҳеҷ гуна "талаф" -и воқеият дар афтидан, desynchronization.

CDC (Тағйир додани сабти маълумот)

Мувофиқ барои системаҳои мавҷуда/муҳоҷират; манбаъ - Дафтари такрории DB.
Филтр/рамзгузорӣ ба рӯйдодҳои домейнро талаб мекунад (ҷадвалҳои хомро дар берун тарҷума накунед).

CQRS ва пешгӯиҳо

Фармонҳо ҳолати худро тағир медиҳанд (аксар вақт синхронӣ), рӯйдодҳо пешгӯиҳоро ташкил медиҳанд (асинхронӣ).
Пешгӯиҳо барои дархостҳо (ҷустуҷӯ, рӯйхатҳо, ҳисоботҳо), ки аз ҷониби муштариён навсозӣ шудаанд, таҳия карда мешаванд.
Desynchronization муваққатӣ меъёр аст: UX-и устуворро нишон диҳед ("маълумот пас аз чанд сония нав карда мешавад").

Sagas: Ҳамоҳангсозии раванд

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

Мушоҳида

Пайгирӣ/Фосила: Пайгирӣ кардани 'trace _ id '/' span _ id' тавассути сарлавҳаҳо ҳангоми тавлиди рӯйдодҳо.
Нишондиҳандаҳо: ақибмонии истеъмолкунандагон, сатҳи нашр/истеъмол, меъёри мактуб, ҳиссаи такрорӣ.
DLQ/таваққуфгоҳ: паёмҳои номуваффақ - ба мавзӯи алоҳида бо ҳушдор; коркарди таъмин.

Амният ва риояи

Таснифи маълумот: ядро ​ ​ танҳо ҳадди аққали зарурии маълумоти PII/молиявиро (модели пирамидаи баръакс), тафсилотро дар ғанисозӣ дар бар мегирад.
Имзо/ҳаш хусусиятҳои интиқодӣ, назорати якпорчагӣ.
Рамзгузорӣ дар парвоз ва истироҳат, тақсимоти ҳуқуқ аз рӯи мавзӯъ/супер (IAM/ACL).
Сиёсати нигоҳдорӣ ва ҳуқуқҳо бояд фаромӯш карда шаванд: барои ҳар як мавзӯъ дақиқ муайян карда шудааст.

Иҷро ва субот

Backpressure: истеъмолкунандагон рақобати маҳдуд доранд, брокер квота/маҳдудият дорад.
Сабтҳои гурӯҳӣ ва фишурдасозӣ-Group барои кам кардани сарборӣ.
Retrai бо jitter ва DLQ ба ҷои кӯшиши беохир.
Муқовимат ба мувозинат: ҷуброни транзаксия/берунаро нигоҳ доред, оғози хунукро бо лаҳзаҳо суръат бахшед.

Қолибҳои муқаррарии ҳодиса

Core пардохт

'пардохт. ташаббускор. v1 '→' пардохт. ваколатдор шудааст. v1 '→' пардохт. асир гирифта шудааст. v1 '→' пардохт. ҳал шудааст. v1 '

Раддияҳо: 'пардохт. рад кард. v1 ',' пардохт. баргардонида шуд. v1 '

Қисмбандӣ: 'пардохт _ ид'

SLA: ақибмонии аслӣ ≤ 2c p95; Idempotence истеъмолкунанда ҳатмист.

CCM/санҷиш

'kyc. оғоз ёфт. v1 '→' kyc. ҳуҷҷат. гирифта шудааст. v1 '→' kyc. тасдиқ шудааст. v1 '/' kyc. рад кард. v1 '

PII - минималӣ; тафсилоти ҳуҷҷат - дар 'kyc. ғанӣ гардонида шудааст. v1 'бо дастрасии маҳдуд.

Аудит/Амният

'аудит. сабт шудааст. v1 'бо сифатҳои' актёр ',' мавзӯъ ',' амал ',' рух дод _ at ',' trace _ id '.

Нигоҳдорӣ/бойгонии пайваста; Беайбии мукаммал (WORM)

Антипаттернҳо

Чорабинии фарбеҳ: бори изофабори зиёдатӣ, ихроҷи PII.
RPC-и пинҳонӣ тавассути рӯйдодҳо: интизори посухҳои синхронӣ "инҷо ва ҳозир".
CDC-ҳои хом ба берун: Пайвастшавӣ ба схемаи DB.
Ҳеҷ гуна idempotency дар истеъмолкунандагон: дучанд ба таъсири тарафҳои дугона оварда мерасонад.
Як мавзӯи умумӣ "барои ҳама чиз": ихтилофи манфиатҳо, тартиби мушкилот, таҳаввулоти мураккаб.

Татбиқи қадам ба қадам EDC

1. Харитаи домейн: Агрегатҳои асосӣ ва давраҳои ҳаётро таъкид кунед.
2. Феҳристи ҳодисаҳо: номҳо, маъноҳо, ғайривариантҳо, майдонҳои зарурӣ.
3. Схемаҳо ва феҳристҳо - Форматро интихоб кунед, қоидаҳои мутобиқатро фароҳам оваред.
4. Outbox/CDC: Барои ҳар як истеҳсолкунанда механизми интишори далелҳоро муайян кунед.
5. Қисмбандӣ: Калидҳоро интихоб кунед ва калидҳои гарм/бозпардохтро арзёбӣ кунед.
6. Idempotency: шакли deduplication + муомилоти истеъмолкунандагон.
7. Пешгӯиҳо - Моделҳои моделсозишуда ва SLA-ҳои навро муайян кунед.
8. Мушоҳида: пайгирӣ, ақибмонӣ, DLQ, огоҳиҳо.
9. Амният/PII: таснифи маълумот, рамзгузорӣ, ACL.
10. Дастур оид ба таҳаввулот: сиёсати версия, беқурб, дутарафа барои муҳоҷират.

Рӯйхати назорати истеҳсолӣ

  • Ҳар як чорабинӣ 'event _ id', 'trace _ id', 'saturday _ at', 'partition _ key' дорад.
  • Схемаҳо дар феҳрист, санҷишҳои мутобиқат фаъол мебошанд.
  • Шахсияти истеъмолкунандагон татбиқ ва озмоиш карда шуд.
  • DLQ/таваққуфгоҳ ва огоҳиҳо барои хатогиҳои нашр/истеъмол танзим карда мешаванд.
  • Пешгӯиҳо аз журнал (такрорӣ) бо вақти мувофиқ барқарор карда мешаванд.
  • Дастрасии маҳдуд ба PII; ҳадди аққали сарборӣ дар ядро.
  • SLA-ҳо бо қафо/таҳвил чен карда мешаванд ва дар панели панелҳо намоёнанд.
  • Нақшаи кӯчонидани версияҳои чорабиниҳо ва фарсудашавии тирезаҳо вуҷуд дорад.

FAQ

EDC аз "танҳо автобус" чӣ фарқ дорад?
Аслӣ на танҳо брокер, балки шартномаи ҳодиса, қоидаҳои тартибот/номутаносибӣ, равандҳои эволютсия ва мушоҳидашаванда мебошад.

Оё мо метавонем танҳо дар CDC бунёд кунем?
CDC барои ҳамгироӣ/муҳоҷират мувофиқ аст, аммо рӯйдодҳои домейн маънои возеҳтар ифода мекунанд ва пойгоҳи додаҳо ба таври устувор тағйир меёбад.

Дар бораи пайдарҳамӣ чӣ гуфтан мумкин аст?
Мо мувофиқати ниҳоӣ ва тарҳрезии UX/равандҳоро барои он қабул мекунем (нишондиҳандаҳои навсозӣ, бозсозӣ, ҷуброн).

Кай маҳз як маротиба лозим аст?
Нодир: ҳангоми дучанд шудан ба таври қатъӣ қобили қабул нест ва ҷуброн кардан ғайриимкон аст. Аксар вақт, ҳадди аққал як маротиба + idempotency кифоя аст.

Ҷамъ

Ядрои рӯйдодҳо ҷараёни далелҳои тиҷоратро ба заминаи боэътимоди система табдил медиҳад. Шартномаҳои возеҳи ҳодиса, интизоми таҳвил ва мушоҳидаҳо миқёс, тобоварӣ ва суръати эволютсияро бидуни пайвастагиҳои нозуки синхронӣ ва "тӯфони" регрессияи тағирёбанда ба бор меоранд.

Contact

Тамос гиред

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

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

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

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

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