Event-Streaming we real-time maglumatlary
(Bölüm: Tehnologiýalar we infrastruktura)
Gysgaça gysgaça
"Event-Streaming" wakalary ýüze çykan pursatda gaýtadan işlemek we eltmekdir. iGaming üçin bu, stawkalara, goýumlara, antifrod signallaryna, jogapkär oýnuň çäklerine, ýaryş tablisalaryna we şahsy offerlere derrew reaksiýany aňladýar. Esasy kerpiçler: wakalaryň tekeri (Kafka/Pulsar), akym hereketlendirijisi (Flink/ksqlDB/Spark Structured Streaming), geleşik DB-den CDC (Debezium), onlaýn-ML we real-time analitikasy üçin Feature Store (materiallaşdyrylan pikirler, OLAP).
Bu iGaming-de möhüm
Antifrod & töwekgelçilik: <100-300 ms-de amallaryň skoringi, özüni alyp baryş nusgalarynyň korrelýasiýasy, petiklenmegi we güýçlenmegi.
Jogapkär oýun: çäklere gözegçilik etmek, ýitgileriň tizligi, anormal hereket - hakyky wagtda alertler we awto-çäklendirmeler.
Tölegler: status wannalary, webhooks PSP, smart-retry, balans proýeksiýalary, SLA "time-to-wallet".
Oýun çäreleri: ýaryşlaryň ýolbaşçylarynyň hasaplamasy (sliding windows), göni oýunlaryň tapgyrlary, CRM/marketing üçin hakyky wagt lentalary.
Şahsylaşdyrma: onlaýn fiçalar (RFM, propensity) → sekuntda trigger kampaniýalary, push/email.
Iş seljermesi: p95/p99 latency, huni ädimleriniň öwrülişigi, platformanyň saglyk signallary.
Binagärlik modelleri
Lambda vs Kappa
Lambda: batch (DWH/ETL) + streaming (operiw). Goşmaça - çeýeligi we "arzan" bal; minus - goşa logika.
Kappa: hemme zat magazineurnalyň akymyna meňzeýär (Kafka). Goşmaça - ýekeje kod, wakalaryň reigrasy; minus - infrastruktura talaplaryndan has berk.
Tejribe: möhüm real-time konturlary üçin - Kappa; hasabat/ML-okuw üçin - goşmaça batch-kontury.
Wakalaryň konweýeri (salgylanma)
1. Öndürijiler: stawkalar/tölegler hyzmatlary domen wakalaryny çap edýärler (outbox → Kafka).
2. Teker: Kafka ('player _ id', 'bet _ id').
3. CDC: Debezium ALTP-den (balanslar, çäkler) akymyna üýtgeşmeleri çykarýar.
4. Akym bejergisi: Flink/ksqlDB/Spark - agregasiýalar, penjireler, CEP, join's.
5. Proýeksiýalar: materiallaşdyrylan tablisalar (Kafka Streams state store/ksqlDB tables/Redis), OLAP (ClickHouse/Druid).
6. Sarp edijiler: antifrod, CRM, habarnamalar, dashbordlar, trigger işleri.
Maglumat şertnamalary we shemalary
Euro/Protobuf + Schema Registry: berk şertnamalar, backward-compatible migrasiýa.
Wersiýa: 'domain. event. v{n}`; bozýan üýtgetmeleri gadagan etmek.
PII: tokenizasiýa/şifrlemek, gizlemek, purpose limitation (GDPR).
Eltip bermegiň semantikleri we duýgudaşlygy
At-least-once - de-fakto standart (dublikatlar bolup biler) → hökmany idempotent-handling.
Akym boýunça "Exactly-once": Kafka + EOS geleşik öndürijileri Flink/Streams; has gymmat, nokady ulanyň (pul/balans).
Outbox + CDC: hyzmatyň DB-sinden ýeke-täk hakykat çeşmesi, goşa ýazuwdan goramak.
Dedup: Key ('idempotency _ key'), TTL bilen duplikasiýa tablisasy, upsert/merge.
Wagtlaýyn penjireler we "giç" maglumatlar
Penjireler:- Tumbling - kesgitlenen yuvalar (mysal üçin, bir minutlyk dolanyşyk).
- Hopping - ädim bilen süýşmek (mysal üçin, ädim bilen penjire 5 minut 1 minut).
- Session - hereketsizligi boýunça (oýunçynyň sessiýasy).
- Watermarks: event-time boýunça gaýtadan işlemek, "giç" (lateness) kabul etmek, DLQ/side-output-a ewakuasiýa.
- CEP (Complex Event Processing): "A soň 3 minutda B", "M sekuntda N waka", "ýatyrmak/öwezini dolmak" patternleri.
Ýagdaýy we ölçegi
Stateful operatorlary: agregasiýalar/joýnalar ýagdaýy saklaýarlar (RocksDB state backend).
Changelog topics: ygtybarlylyk we dikeldiş state.
Backpressure: tizligi awto-sazlamak, sistema/sink çäkleri.
Açarlary paýlamak: gyzgyn açarlar (heavy hitters) → key-salting, skew mitigation.
Gözegçilik we SLO
SLO akymy: p99 end-to-end latency (mysal üçin ≤ 2 s), rugsat berilýän ulanyjy lag, elýeterlilik ≥ 99. 9%.
Metrikler: throughput, lag partiýa, watermark delay, drop/late ratio, backpressure, busy time operator, GC/JVM.
Alertler: DLQ beýikligi, suw markynyň yza galmagy, EOS barlag nokatlarynyň şowsuzlyklary, onlaýn/awtonom şekilleriň iň soňkusy.
Söwda: prodýuser-akym-konsumer arkaly korelasiýa ID ('trace _ id', 'message _ id').
Howpsuzlyk we laýyklyk
TLS/MTLS, ACL/RBAC topiklere/tablisalara, duýgur domenleriň segmentasiýasy (tölegler/KUS).
Tranzitde/diskde PII şifrlemek; Vault/SOPS-da syrlar.
Data retention & locality: sebitler boýunça saklamak (EUB, Türkiýe, Latam), aýyrmak syýasaty.
Audit: kim çap etdi/okady, ssenarileriň gaýtalanmagy.
Ýokary elýeterlilik we DR
Kafka: `replication. factor ≥ 3`, `min. insync. replicas ',' acks = all ', DR üçin MM2.
Flink/Streams: gözegçilik edilýän goýberişler üçin wagtal-wagtal checkpoint + savepoint; HA-JobManager.
OLAP: segmentleriň köpelmegi, read replicas; failover (game day) synaglary.
Öndürijilik we sazlama
Öndürijiler: batching ('linger. ms`, `batch. size '), gysyş (lz4/zstd).
Konsumerler: dogry 'max. poll. interval ', arka gapda partiýa arakesmesi.
Partiýalaşdyrmak: maksatly TPS-den we parallelizmden partiýalaryň hasaby.
State: RocksDB options (block cache/write buffer), NVMe/IOPS, pinning.
Tor: 10/25G, TCP-sazlamak, n + 1 sink-haýyşlary saklamak.
Durmuşa geçirmek: esasy tehnologiýalar
Teker: Apache Kafka (alternatiwalar: Pulsar, Redpanda).
Akym bejergisi: Apache Flink, Kafka Streams, ksqlDB, Spark Structured Streaming.
CDC: Debezium (MySQL/Postgres), Outbox-konnektorlar.
Proýeksiýa ammarlary: ksqlDB tables, Kafka Streams state store, Redis for low latentity, ClickHouse/Druid/Pinot for OLAP.
Fichestor: Feast ýa-da öz - onlaýn (Redis) + oflayn (Parquet/BigQuery), yzygiderlilik kepilligi.
Dizaýn nusgalary
Outbox → Kafka: DB geleşiginden her bir domen hadysasy.
Saglar: wakalar arkaly öwezini dolmak; orkestr - akym.
Fan-out: bir waka → antifrod, CRM, analitika, bellikler.
Materialized Views: Liderbordlar, balans, çäkler - akymdan täzelenýän tablisalar görnüşinde.
Reprocessing: agregatlary/retro analitikleri sanamak üçin topikleri köpeltmek.
Mysallar (düşünjeler)
ksqlDB: ýaryş liderleri (süýşýän penjire)
sql
CREATE STREAM bets_src (
bet_id VARCHAR KEY,
player_id VARCHAR,
amount DOUBLE,
ts BIGINT
) WITH (KAFKA_TOPIC='bets. placed. v1', VALUE_FORMAT='AVRO', TIMESTAMP='ts');
CREATE TABLE leaderboard AS
SELECT player_id,
SUM(amount) AS total_stake,
WINDOWSTART AS win_start,
WINDOWEND AS win_end
FROM bets_src
WINDOW HOPPING (SIZE 10 MINUTES, ADVANCE BY 1 MINUTE)
GROUP BY player_id
EMIT CHANGES;
Flink (psevdokod): late-events
java stream
.assignTimestampsAndWatermarks(WatermarkStrategy. forBoundedOutOfOrderness(Duration. ofSeconds(10)))
.keyBy(e -> e. playerId)
.window(SlidingEventTimeWindows. of(Time. minutes(5), Time. minutes(1)))
.aggregate(scoreFunction, processWindow)
.sideOutputLateData(lateTag)
.addSink(riskTopic);
Akym hilini barlamak
Shemalaryň we ewolýusiýanyň Contract-synaglary (Schema Registry).
Iş ýüki: maksatly TPS, p99, sink zaýalananda özüni alyp barşy.
"Failure/chaos": brokerleriň/düwünleriň ýykylmagy, toruň gijikdirilmegi, split-brain.
Deterministic replays: topikleri gaýtalamak → şol bir netijeler.
Kanary akymlary: gijikdirme we bitewiligi barlamagyň kontury.
Giriş barlagy
1. SLO (p99 E2E ≤ X c, lag ≤ Y, elýeterlilik ≥ Z).
2. Shemalary we açarlary standartlaşdyrmak (player_id/bet_id).
3. Arhitekturany saýla (möhüm konturlar üçin Kappa).
4. Outbox + CDC guruň we PII-ni izolirläň.
5. Penjireleri, watermark, late-policy we DLQ/side outputs.
6. Pul ýollarynda EOS/idempotentligi açyň.
7. lag, watermark, DLQ-e gözegçilik we alertleri giriziň.
8. HA/DR we reprocessing düzgünlerini üpjün etmek.
9. "Feature Store" -y we senkronizasiýany onlaýn/awtonom ýagdaýda ýerleşdiriň.
10. Game-day geçiriň: şowsuzlyklary we dikeldişleri düzüň.
Antipattern
Düşünjeli syýasat bolmazdan waka-wagt we processing-time garyşdyrmak.
Shema governance → "döwýän" neşirleriň ýoklugy.
Late data we "gyzgyn açarlary" äsgermezlik ediň.
Replay strategiýasynyň we topikleriň wersiýasynyň ýoklugy.
Idempotency we EOS bolmadyk nyrhlar/tölegler.
Netijeler
Hakyky wagt akymy "başga bir ulag" däl-de, pikir etmegiň usuly: domen wakalary, aýdyň SLO, maglumat şertnamalary, penjireler we ýagdaý, howpsuzlyk we gözegçilik. iGaming üçin durnukly toplum - Kafka + Flink/ksqlDB + Debezium + Materialized Views + Feature Store. Ol millisekundlyk reaksiýalary, onlaýn/awtonom analitikanyň sazlaşygyny we ýüküň köpelmeginde gözegçilik edilýän çylşyrymlylygy berýär.