Message Lifecycle
Last updated 2026-02-07
End-to-end flow
- Client calls
POST /v1/agents/:id/messages. - Rooaak verifies API key +
project:messagescope. - Rooaak ensures runtime is running.
- Rooaak inserts
messagesrow withstatus: pending. - Runtime pulls pending messages via
GET /runtime/messages/stream(SSE). - Runtime posts response via
POST /runtime/messagesorPOST /runtime/messages/:id. - Rooaak updates
messages.response,status: responded,response_time_ms. - Client gets sync
200 respondedor fallback202 pendingand later pollsGET /v1/messages/:idor listens via webhook.
Events emitted
message.receivedon accepted inbound message (best-effort webhook dispatch)message.respondedon runtime response write (best-effort)