Context
Today the canonical SDK example uses @rtms.on_webhook_event + rtms.run(), which couples webhook receipt and RTMS client lifecycle into one process. This is right for the quickstart but blocks the standard production pattern for failover — a small ingest service validates webhooks and enqueues to SQS / Kinesis / RabbitMQ; a separate worker fleet pulls from the queue and joins meetings. The worker never runs the SDK's HTTP server; it just creates rtms.Client() from a payload it received from the queue.
This pattern is already technically possible with the SDK today — you can import rtms; client = rtms.Client(); pool.add(client); client.join(payload) without ever using @rtms.on_webhook_event or rtms.run(). But it's nowhere in the docs, no sample, and no story for the lifecycle of pool.run() when called outside the implicit context.
What to ship
- Documented sample in
examples/python.md of "worker that takes a payload from any source (SQS, HTTP body, file, in-memory queue) and joins a meeting" — no HTTP server.
- Documented sample of the "ingest service" pattern — accept the webhook, verify the signature with
rtms.verify_webhook_signature() (DEVS-X2), enqueue the payload to whatever queue the customer uses.
- Reference architecture diagram for SQS-replay (Python sample). Could live in the same file or a new
examples/cloud-deploy.md.
- No code change required — this is documentation + samples. The SDK already supports it.
Acceptance criteria
Cross-language parity
Source
Tracked in vault: Projects/RTMS SDK v1.2.md → DEVS-X11.
Tracker
Part of the v1.2 milestone. Project: https://github.com/orgs/zoom/projects/11.
Context
Today the canonical SDK example uses
@rtms.on_webhook_event+rtms.run(), which couples webhook receipt and RTMS client lifecycle into one process. This is right for the quickstart but blocks the standard production pattern for failover — a small ingest service validates webhooks and enqueues to SQS / Kinesis / RabbitMQ; a separate worker fleet pulls from the queue and joins meetings. The worker never runs the SDK's HTTP server; it just createsrtms.Client()from a payload it received from the queue.This pattern is already technically possible with the SDK today — you can
import rtms; client = rtms.Client(); pool.add(client); client.join(payload)without ever using@rtms.on_webhook_eventorrtms.run(). But it's nowhere in the docs, no sample, and no story for the lifecycle ofpool.run()when called outside the implicit context.What to ship
examples/python.mdof "worker that takes a payload from any source (SQS, HTTP body, file, in-memory queue) and joins a meeting" — no HTTP server.rtms.verify_webhook_signature()(DEVS-X2), enqueue the payload to whatever queue the customer uses.examples/cloud-deploy.md.Acceptance criteria
examples/python.mdCross-language parity
examples/node.mdSource
Tracked in vault:
Projects/RTMS SDK v1.2.md→ DEVS-X11.Tracker
Part of the v1.2 milestone. Project: https://github.com/orgs/zoom/projects/11.