Envelope: Action Servisi
Topic: qapu.action
DLQ: qapu.dlq.action
Producer: action-service
Action servisi, tetiklenen kurallar karşısında tanımlı aksiyonları yürütür: bildirim gönderme, otomasyon komutu veya Ledger kaydı. Aksiyon talebi iletildiğinde action.execute.requested.v1, başarıyla tamamlandığında action.executed.v1, hata durumunda action.failed.v1 üretilir.
Event Envanteri
| Event | Ne zaman üretilir? | Consumer | Amaç |
|---|---|---|---|
action.execute.requested.v1 | Kural tetiklemesi bir aksiyon gerektirdiğinde | Communication / Automation / Ledger | İlgili alt servise iş yükü iletmek |
action.executed.v1 | Aksiyon başarıyla tamamlandığında | Ledger, Observer | Denetim kaydı ve görünürlük |
action.failed.v1 | Aksiyon yürütme sırasında hata olduğunda | Observer | Hata görünürlüğü ve retry kararı |
action.execute.requested.v1
Özet
| Başlık | Değer |
|---|---|
| Topic | qapu.action |
| Producer | action-service |
| Consumer | Communication Servisi, Automation Servisi, Ledger Servisi |
| Tetikleyici | rule.triggered.v1 tüketimi |
| Kritiklik | Yüksek — bildirim veya otomasyon zincirine girer |
Payload
{
"event": "action.execute.requested.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i0",
"producer_service": "action-service",
"produced_at": "2026-03-11T15:22:14.000Z",
"process_ms": 10
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:14.000Z",
"iccid": null,
"imei": null,
"firmware": "2.3.0"
},
"data": {
"action_id": "act_9823412_001",
"rule_id": "rule_voltage_high_001",
"action_type": "notify",
"target_channel": "sms",
"recipient": "+905XX000000",
"template_id": "voltage_high_warning",
"payload": {
"device_id": "400000011D081B70",
"metric": "voltage_rms_l1",
"measured_value": 257.4,
"threshold": 253.0
}
},
"error": null
}
Alan Açıklamaları
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
data.action_id | string | Evet | Aksiyonun benzersiz tanımlayıcısı |
data.action_type | string | Evet | notify | automate | log |
data.target_channel | string | notify ise | sms | email | push | whatsapp |
data.template_id | string | notify ise | Mesaj şablonu |
data.payload | object | Hayır | Şablona aktarılan bağlam verisi |
action.executed.v1
Özet
| Başlık | Değer |
|---|---|
| Topic | qapu.action |
| Producer | action-service |
| Consumer | Ledger Servisi, Observer |
| Tetikleyici | Communication/Automation servisinin başarı bildirimi alındığında |
| Kritiklik | Orta — denetim ve görünürlük kaydı |
Payload
{
"event": "action.executed.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i1",
"producer_service": "action-service",
"produced_at": "2026-03-11T15:22:16.800Z",
"process_ms": 1800
},
"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": "2.3.0"
},
"data": {
"action_id": "act_9823412_001",
"rule_id": "rule_voltage_high_001",
"action_type": "notify",
"target_channel": "sms",
"duration_ms": 1800
},
"error": null
}
action.failed.v1
Özet
| Başlık | Değer |
|---|---|
| Topic | qapu.action |
| Producer | action-service |
| Consumer | Observer Servisi |
| Kritiklik | Orta — aksiyon tamamlanmadı; Observer retry/eskalasyon kararı verir |
Payload
{
"event": "action.failed.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i2",
"producer_service": "action-service",
"produced_at": "2026-03-11T15:22:16.900Z",
"process_ms": 5010
},
"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",
"rule_id": "rule_voltage_high_001",
"action_type": "notify",
"target_channel": "sms"
},
"error": {
"failed_stage": "action",
"error_code": "ACTION_SMS_TIMEOUT",
"error_message": "SMS gateway did not respond within 5s",
"failed_at": "2026-03-11T15:22:16Z"
}
}