Envelope: Egress Servisi
Topic: qapu.egress
DLQ: qapu.dlq.egress
Producer: egress-service
Egress servisi, işlenmiş ve sentezlenmiş ölçüm verilerini harici sistemlere veya müşteri API uç noktalarına iletir. Başarılı iletimde egress.sent.v1, hata durumunda egress.failed.v1 üretilir.
Event Envanteri
| Event | Ne zaman üretilir? | Consumer | Amaç |
|---|---|---|---|
egress.sent.v1 | Veri harici hedefe başarıyla iletildiğinde | Ledger, Observer | Denetim kaydı ve görünürlük |
egress.failed.v1 | İletim hatayla sonlandığında | Observer | Hata görünürlüğü ve retry kararı |
egress.sent.v1
Özet
| Başlık | Değer |
|---|---|
| Topic | qapu.egress |
| Producer | egress-service |
| Consumer | Ledger Servisi, Observer |
| Tetikleyici | Periyodik veya tetiklemeli çıkış işlemi başarıyla tamamlandığında |
| Kritiklik | Orta — müşteri entegrasyonu teyidi |
Payload
{
"event": "egress.sent.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i0",
"producer_service": "egress-service",
"produced_at": "2026-03-11T15:23:00.500Z",
"process_ms": 340
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": null,
"stream_time": "2026-03-11T15:23:00Z"
},
"data": {
"egress_id": "egr_8812",
"destination": "https://api.customer.example/ingest",
"destination_type": "webhook",
"records_sent": 96,
"window_slot": "2026-03-11T15:15:00Z",
"http_status": 200,
"response_time_ms": 335
},
"error": null
}
Alan Açıklamaları
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
data.egress_id | string | Evet | Egress işleminin benzersiz tanımlayıcısı |
data.destination_type | string | Evet | webhook | ftp | mqtt | s3 |
data.records_sent | integer | Evet | İletilen kayıt sayısı |
data.window_slot | string (ISO 8601) | Hayır | İletilen veri bloğunun pencere zamanı |
data.http_status | integer | Hayır | Hedef HTTP uç noktasının yanıt kodu (webhook için) |
egress.failed.v1
Özet
| Başlık | Değer |
|---|---|
| Topic | qapu.egress |
| Producer | egress-service |
| Consumer | Observer Servisi |
| Kritiklik | Yüksek — müşteri verisi iletilmedi |
Payload
{
"event": "egress.failed.v1",
"meta": {
"trace_id": "a7c3...",
"producer_service": "egress-service",
"produced_at": "2026-03-11T15:23:00.600Z",
"process_ms": 5040
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": null,
"stream_time": "2026-03-11T15:23:00Z"
},
"data": {
"egress_id": "egr_8812",
"destination": "https://api.customer.example/ingest",
"destination_type": "webhook",
"window_slot": "2026-03-11T15:15:00Z",
"attempt": 2
},
"error": {
"code": "EGRESS_HTTP_TIMEOUT",
"message": "Destination did not respond within 5000ms",
"stage": "http_send",
"retryable": true
}
}
Alan Açıklamaları
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
data.attempt | integer | Hayır | Bu eventı üreten iletim denemesi sayısı |
error.retryable | boolean | Evet | true ise Observer gecikme ile yeniden deneyebilir |