Skip to main content

Envelope: Communication Servisi

Topic: qapu.communication
DLQ: qapu.dlq.communication
Producer: communication-service

Communication servisi, SMS/e-posta/push/WhatsApp gibi çok kanallı bildirim gönderimleri için tekil çıkış noktasıdır. Başarılı gönderimde communication.sent.v1, hata durumunda communication.failed.v1 üretilir.

Event Envanteri

EventNe zaman üretilir?ConsumerAmaç
communication.sent.v1Bildirim başarıyla gönderildiğindeAction Servisi, LedgerTeyit ve denetim kaydı
communication.failed.v1Gönderim hatayla sonlandığındaObserverHata görünürlüğü ve retry kararı

communication.sent.v1

Özet

BaşlıkDeğer
Topicqapu.communication
Producercommunication-service
ConsumerAction Servisi (teyit için), Ledger Servisi
Tetikleyiciaction.execute.requested.v1 tüketimi — gönderim başarılı olduğunda
KritiklikOrta — aksiyon döngüsünü kapatır

Payload

{
"event": "communication.sent.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i0",
"producer_service": "communication-service",
"produced_at": "2026-03-11T15:22:16.500Z",
"process_ms": 1200
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:16Z",
"iccid": null,
"imei": null,
"firmware": null
},
"data": {
"action_id": "act_9823412_001",
"channel": "sms",
"recipient": "+905XX000000",
"template_id": "voltage_high_warning",
"provider": "netgsm",
"provider_message_id": "netgsm_ref_7743921",
"sent_at": "2026-03-11T15:22:16.450Z"
},
"error": null
}

Alan Açıklamaları

AlanTipZorunluAçıklama
data.action_idstringEvetİlgili aksiyon tanımlayıcısı
data.channelstringEvetsms | email | push | whatsapp
data.providerstringHayırKullanılan gönderim sağlayıcısı (ör. netgsm, sendgrid)
data.provider_message_idstringHayırSağlayıcının döndürdüğü referans kimliği
data.attemptintegerHayırBu eventi üreten gönderim denemesi sayısı (varsa)
error.failed_stagestringEvetSabit: communication
error.error_codestringEvetHata kodu (COMM_PROVIDER_REJECTION vs.)
error.error_messagestringEvetİnsan okunur hata açıklaması
error.failed_atdatetimeEvetHata oluşum zamanı

communication.failed.v1

Özet

BaşlıkDeğer
Topicqapu.communication
Producercommunication-service
ConsumerObserver Servisi
KritiklikOrta — bildirim ulaşmadı; Observer retry/eskalasyon kararı verir

Payload

{
"event": "communication.failed.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i1",
"producer_service": "communication-service",
"produced_at": "2026-03-11T15:22:16.700Z",
"process_ms": 5050
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:16Z",
"iccid": null,
"imei": null,
"firmware": null
},
"data": {
"action_id": "act_9823412_001",
"channel": "sms",
"recipient": "+905XX000000",
"provider": "netgsm",
"attempt": 3
},
"error": {
"failed_stage": "communication",
"error_code": "COMM_PROVIDER_REJECTION",
"error_message": "Provider returned HTTP 429: rate limit exceeded",
"failed_at": "2026-03-11T15:22:16Z"
}
}

Alan Açıklamaları

AlanTipZorunluAçıklama
data.attemptintegerHayırBu eventı üreten gönderim denemesi sayısı (varsa)
error.retryablebooleanEvettrue ise Observer gecikme ile yeniden deneyebilir