Protocol
All EDS V2 messages are JSON text frames with the following envelope:
{
"frameType": "<frame-type>",
"framePayload": { ... }
}
frameType identifies the frame type. framePayload contains the frame-specific fields.
Frame Type Reference
| Frame type | Direction | Description |
EVENT | Server → Client | Delivers an event from the queue |
ACK_EVENT | Client → Server | Acknowledges a received event |
ACK_EVENT_REPLY | Server → Client | Confirms that an acknowledgement was processed |
PING | Client → Server | Keep-alive probe |
PONG | Server → Client | Keep-alive response |
EVENT
Fields
| Field | Type | Description |
eventId | string (UUID) | Stable identifier for this event. Identical across redeliveries of the same event. Use this for deduplication. |
eventType | string | The type of event (e.g. TENANT_ONBOARDED). |
receiptId | string | Identifies this specific delivery attempt. Changes on each redelivery. Use this in the ACK_EVENT frame. |
eventTs | string (ISO 8601) | Timestamp when the event occurred. |
queueName | string | The queue through which this event was delivered. |
eventPayload | object | Event-specific data. Fields vary by eventType — see Events. |
Example
{
"frameType": "EVENT",
"framePayload": {
"eventId": "a1b2c3d4-0000-0000-0000-000000000001",
"eventType": "TENANT_ONBOARDED",
"receiptId": "f9e8d7c6-0000-0000-0000-000000000002",
"eventTs": "2026-03-20T14:30:00.000Z",
"queueName": "my-integration-queue",
"eventPayload": {
"tenantId": "P0001",
"empegoTenantId": "tenant-abc"
}
}
}
ACK_EVENT
Fields
| Field | Type | Description |
receiptId | string | The receiptId from the EVENT frame being acknowledged. |
Example
{
"frameType": "ACK_EVENT",
"framePayload": {
"receiptId": "f9e8d7c6-0000-0000-0000-000000000002"
}
}
ACK_EVENT_REPLY
Fields
| Field | Type | Description |
receiptId | string | The receiptId that was acknowledged. |
Example
{
"frameType": "ACK_EVENT_REPLY",
"framePayload": {
"receiptId": "f9e8d7c6-0000-0000-0000-000000000002"
}
}
PING
Fields
| Field | Type | Description |
correlationId | string | Client-chosen identifier to correlate the pong response. |
Example
{
"frameType": "PING",
"framePayload": {
"correlationId": "ping-001"
}
}
PONG
Fields
| Field | Type | Description |
correlationId | string | Echo of the correlationId from the corresponding PING. |
Example
{
"frameType": "PONG",
"framePayload": {
"correlationId": "ping-001"
}
}