GH GambleHub

Şəbəkədə rabitə kanallarının optimallaşdırılması

1) Kanalların taksonomiyası və onların invariantları

Kanallar:
  • E-poçt - geniş miqyaslı və ucuz, lakin domen/IP nüfuzuna həssasdır.
  • SMS/Voice - yüksək çatdırılma/təcili, yüksək qiymət, ölkələr üzrə incəliklər.
  • Push (mobile/web) - anında və ucuz, icazələrdən/OS asılıdır.
  • In-app/On-site - kontekstdə və «pulsuz», aktiv sessiya tələb edir.
  • Messencerlər (WhatsApp/Telegram/Viber və s.) - ciddi şablonlar/siyasətlər, bəzən platforma-fees.
  • Webhooks - tərəfdaşlar üçün «B2B-hadisələr» kanalı (texniki çatdırılma).
  • Zəng mərkəzi/chat operatorları - mürəkkəb hallar üçün əl/yarım əl kanalları.

İnvariantlar: razılıq/məqsədlər, tezlik limitləri, vaxt pəncərələri (timezone/» sakit saat»), qiymət, SLA/SLO, məxfilik və« silinmə hüququ ».

2) Kommunikasiya qatının arxitekturası

mermaid flowchart LR
A [Producer: Product/Marketing/RCM] --> B [Orchestrator: Rules, Consents, SOR]
B --> C[Channel Adapters: email/sms/push/messenger/webhooks]
C --> D[Providers Pool: ESP/SMSC/FCM/APNs/Messenger APIs]
B --> E[Consent/Preference DB]
B --> F[Rate Limits/Queues/DLQ]
B --> G[Observability & SLO]
B --> H[Experiments (A/B, MAB)]
Əsas komponentlər:
  • Orchestrator - kanal/marşrut seçimi, prioritetlər, bandling, dedup.
  • Adapters - provayderlərə vahid API.
  • Consent DB - qranulyar razılıq/» sakit saat «/kanal üstünlükləri.
  • Queues - backpressure, eksponent ilə retralar, DLQ.
  • Observability - telemetriya, korrelyasiya 'message _ id user_id campaign_id'.

3) «Kanal pasportu» və provayderlərin kataloqu

yaml channel_passport. v1:
channel: "sms"
purpose: ["security_otp","alerts","marketing_optin"]
jurisdictions: ["EU","TR","LATAM"]
consent_required: true quiet_hours: { start_local: "22:00", end_local: "08:00", except: ["security_otp"] }
slo:
delivery_within: { p95_ms: 30000 }
failure_rate: { max: "0. 8%" }
cost_targets:
max_cpd: "€0. 035"  # cost per delivered providers:
- id: "twilio"
regions: ["EU","US"]
dlt: true price_map: { TR: "€0. 028", EU: "€0. 031" }
- id: "infobip"
regions: ["EU","TR","LATAM"]
price_map: { TR: "€0. 026", EU: "€0. 033" }
fallback_order: ["infobip","twilio"]

4) Kanal və marşrut seçimi (rabitə üçün SOR)

Meyarlar: razılıq və üstünlüklər, hadisənin kritikliyi, dəyəri, çatdırılma ehtimalı (deliverability score), latency SLO, «sakit saat», domen nüfuzu/IP, saturations.

Psevdokod:
python def pick_route(ctx, channels):
allowed = [c for c in channels if has_consent(ctx. user, c) or c in ctx. legal_basis]
allowed = [c for c in allowed if not quiet_hours(ctx. localtime, c) or ctx. critical]
scored = []
for c in allowed:
p = provider_with_best_score(c, ctx. region, ctx. priority)
s = (w1deliverability(c,p,ctx. region) +
w2latency_score(c,p) +
w3cost_score(c,p) +
w4fatigue_penalty(ctx. user,c))
scored. append((s,c,p))
s,c,p = max(scored)
return (c,p)

5) Razılıq, üstünlüklər və «sakit saat»

Razılıq modeli:
  • Qranulyar: kanal × hədəf (security/alerts/marketing/transactional).
  • Müvəqqəti pəncərələr (local TZ) və gündəlik kvotalar per kanal.
  • DSAR: üstünlükləri əldə etmək/silmək/dəyişdirmək hüququ.
Rego-siyasət (fraqment):
rego package comm. consent

deny["No consent for marketing"] {
input. purpose == "marketing"
not input. user. consent["marketing"][input. channel]
}

deny["Quiet hours violation"] {
input. channel in {"sms","push","call"}
t:= input. user. local_time is_between(t, "22:00", "08:00")
input. critical == false
}

6) Deliverability və kanalların gigiyenası

Email: SPF/DKIM/DMARC, BIMI, IP seqmentasiyası (əməliyyat vs promo), IP/Domain warming, abunə olmayan/şikayət siyahıları, adaptiv tezlik, məzmun bələdçiləri (tetik sözləri/URL-pharma olmadan).
SMS: DLR, alfanumerics/short codes, DLT/şablon qeydiyyatı (regional tələblər), LCR (Least-Cost Routing) keyfiyyəti nəzərə alınmaqla.
Push: açarlar/tokenlər, TTL, collapse-keys, bildiriş kateqoriyaları, «sakit rejim».
Messencerlər: şablonlar, dialoq pəncərələri (24h), əvvəlcədən razılaşmalar.

7) Davamlılıq: retray, idempotentlik, dedup

Idempotency-Key = `channel|provider|external_id`

Retrailer: eksponent + jitter, webhook/ESP API-də vaxt qutusu, «ədalətli deqradasiya» (fallback kanalı).
Dedup: 'message _ hash' və TTL-i pəncərədə saxlayın; konsumerlərdə - «seen-set».
DLQ: ayrı saxlama və əl/avtomatik re-drive, səbəblərin təhlili ilə.
Outbox/Inbox: prodüserdən orkestrə zəmanətli çatdırılma.

Eskiz:
python def send(adapter, msg):
key = f"{adapter. name}    {msg. external_id}"
if seen(key): return "OK"
try:
adapter. push(msg, timeout=3)
mark_seen(key); return "OK"
except Timeout:
if msg. can_fallback: return send(next_adapter(adapter), msg)
raise

8) Məhdudiyyətlər və qorunma (rate limiting, anti-spam/frod)

Limitlər: per user/day, per channel/day, per provider/rps, burst-kaps.
Fatigue score: şəxsi yorğunluq sayğacı (tezlik × mənfi siqnallar).
Anti-frod: OTP-nin «həddindən artıq» qorunması, device/ASN siqnalları, şablonlarda honey-tokens, «sms-bombing» qorunması.
Məzmun siyasətləri: şok məzmununun qadağan edilməsi, regional reklam normaları/yaş işarələri.

9) SLO, metrika və analitika

Tranzaksiya:
  • p95 latency до DLR/Open/Delivery, error-rate, DLR%, webhook ack%.
Marketinq:
  • OR/CTR, Unsubscribe/Complaint rate, Conversion/ARPU uplift, Incrementality (holdout).
İqtisadiyyat:
  • Cost per delivered (CPD), $/click, $/conversion, egress $/GB.
Marşrutun keyfiyyəti:
  • Provider health score (DLR×latency×cost), fallback rate, quiet hours violations.

10) Təcrübələr: A/B və multiarm quldurlar

A/B: şablonlar, mövzular, göndərmə vaxtı, kanal.
MAB (UCB/Thompson): provayderlər/şablonlar arasında trafikin onlayn yenidən bölüşdürülməsi.
Gard: risk limiti, SLO/şikayətlərin pisləşməsi zamanı erkən dayanma.

11) Məzmun və personallaşdırma

Bandling: Bir neçə mesajın bir digest (kanal dostu) birləşdirilməsi.
Personalizasiya: seqmentlər/tövsiyələr, dinamik bloklar, lokalizasiya/valyuta.
Kontekst: an-trigger (behavioral), geo/vaxt faktorları, huninin «son addımı».
Şablon təhlükəsizliyi: enjeksiyon imkanı olmadan şablon render, dəyişənlərin məhdudlaşdırılması.

12) Webhooks inteqrasiyası (B2B kanalı)

Tələblər: imza (HMAC/Ed25519), anti-replay (timestamp + nonce), vaxt qutuları, idempotentlik və təkrar çatdırılma.
Playbook deqradasiya: ortaq kütləvi 5xx ilə - pauza/azalma RPS, növbə fallback, bildiriş.

HTTP sxemi:

POST /webhook
Headers:
X-Id: msg-uuid
X-Signature: ed25519:...
X-Timestamp: 1730388405
Body: { event_id, type, payload, version }

13) Maliyyə optimallaşdırılması (FinOps) və «yaşıl» təcrübələr

Keyfiyyət nəzərə alınmaqla SMS/Voice üçün LCR (yalnız qiymət deyil!).
Egress Control: webhooks üçün kompression/batching, yerli POP/edge.
Zaman yuvaları: marketinqi ucuz/yaşıl pəncərələrə göndərin, kompüter balansını saxlayın.
CI/CD-də Unit-iqtisadiyyat: «CPD-lər hədəfdən yuxarıda» - poçtları dayandırın.

Rego qapısı:
rego package comm. finops deny["CPD budget exceeded"] {
input. forecast. cpd > input. targets. cpd_max input. campaign. type == "marketing"
}

14) Təhlükəsizlik və məxfilik

Hadisə/loqlarda PD-ni minimuma endirmək; e-mail/telefon əvəzinə təxəllüslər.
Tranzit və at rest şifrələmə; KMS/rotasiya.
Dəstək operatorları üçün Time Access (JIT).
DSAR/silmə: bütün kanallar və provayderlər tərəfindən hesabatları təsdiqləyən izləmə.
Abunələr/Opt-out: Bu məqsədin bütün kanalları üçün ani, keçici.

15) Pleybuklar (eskizlər)

15. 1 «Uğursuzluq deliverability email»

1. «Tranzaksiya» IP hovuzuna keçid;

2. aşağı engagement ilə seqmentlər üzrə tezlik/həcmi azaltmaq;

3. DNS/DMARC hesabatlarının yenidən generasiyası;

4. Məzmun/şikayətlərin auditi;

5. Post-mortem və IP warming plan.

15. 2 «Ölkədə SMS imtina Spayk»

1. LCR → alternativ provayder;

2. rps aşağı və eksponent ilə retry daxil;

3. Kritik mesajları voice fallback kimi qeyd edin;

4. Məhsulu gecikmələr barədə məlumatlandırın.

15. 3 «Webhook-alıcının uğursuzluğu»

1. Çevirmək DLQ;

2. Tərəfdaşı xəbərdar edin;

3. Test endpoint (health-probe);

4. Re-drive limit batches.

16) Anti-nümunələr

Razılıq/üstünlük olmadan kütləvi poçt → şikayətlər/bloklama.
Kritik kanal üçün vahid provayder → konsentrasiya riski.
DLQ/dedup → dublikat və təkrarlama uçqunu yoxdur.
Jitter/məhdudiyyətsiz «Kar» retrajlar → fırtına və rate limit ban.
Bir IP-də əməliyyat və marketinq e-poçtunu qarışdırın.
«Sakit saat» və yerli qaydalara məhəl qoymamaq → cərimələr/reputasiya itkiləri.
PII şablonlarda, loqlarda və vebhuklarda.

17) Memarın yoxlama siyahısı

1. Kanal pasportu/məqsədlər/yurisdiksiyalar və provayderlərin kataloqu varmı?
2. SOR kanal seçimi razılığı nəzərə alır, «sakit saat», dəyəri və SLO?
3. Idempotentlik/retray/dedup/DLQ və backpressure həyata keçirilmişdir?
4. Email: SPF/DKIM/DMARC/BIMI, ayrı IP hovuzlar?
5. SMS: Qiymət və keyfiyyətə görə LCR, DLT/şablonlara hazırlıq?
6. Push: kateqoriyalar, collapse-keys, TTL və «sakit rejimi»?
7. Webhooks: imza, anti-replay, vaxt qutuları, test qum qutusu?
8. Müşahidə müddəti: p95, DLR, OR/CTR, unsubscribe/complaints, CPD?
9. Təcrübələr: A/B/MAB orkestratorda, guardrails?
10. Gizlilik: PD-ni minimuma endirmək, DSAR-ı keçmək, ani opt-out?
11. FinOps/GreenOps: CPD/$/GB büdcə, ucuz pəncərələr, egress nəzarət?
12. Hadisə pleybukları və provayderlər üçün exit planları?

Nəticə

Rabitə kanallarının optimallaşdırılması kompromislərin orkestrləşməsidir: razılıq və keyfiyyət> sürət və dəyər, sabitlik və məxfilik> «hamıya göndərin». Vahid kanal pasportları, SOR marşrutlaşdırma, deliverability gigiyenası, davamlı çatdırılma nümunələri və iqtisadi metrlərlə müşahidə edin - və ünsiyyətiniz bütün ekosistem üçün proqnozlaşdırıla bilən, effektiv və təhlükəsiz olacaq.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.