Introduction
Tablebox is a LiveKit-like realtime application platform built on MoQ over WebTransport. It is made of two things:
- With MoQ, participants (people and apps) publish data and media at any path, and read them.
- With the PaaS, developers decide who may read and write which paths, manage them, and see usage.
Tablebox also runs five programs, as standard for every project, that read and publish the way participants do: Ingress, which takes streams from outside and publishes them; Egress, which reads and sends out or records; Aggregation, which reads, merges and publishes; Persistence, which reads, saves and publishes later; and Agent, which reads, talks and publishes.
The hosted service is not open yet, so Tablebox cannot be used yet. The operator has not published the Relay URL, the Manager API address, the Console address or the Ingress and Egress hosts (Reference). These pages describe what Tablebox does and how to build with it; Get started shows how to try it on your own machine meanwhile.
What Tablebox adds to MoQ
| Addition | With MoQ alone | With Tablebox | Closest in LiveKit | Read |
|---|---|---|---|---|
| Connection and rights | A relay only decides a connection by token | Projects and keys, links, who may read and write which paths, set by tokens or by rules that need no backend, and the reasons for a refusal | Access tokens | Connecting |
| Management | None | A management API and Console: projects, keys, environment variables, removing participants, closing a range of paths, usage, limits | Server API, Cloud dashboard | Managing projects |
| Aggregation | One writer per path | Merges shared state that many people change at once, so everyone reads the same thing, and tells each writer whether its change was applied | None | Aggregation |
| Persistence | Only the latest content, while its publisher is there | Saves chosen content to the developer's storage and gives it back to people who come later, even after everyone has left | None | Persistence |
| Egress | Content flows and is not kept, and nothing reaches what does not speak MoQ | Records audio and video to the developer's storage and sends them to streaming services | Egress | Egress |
| Agent | None | An AI people talk to by voice or text and can interrupt, running on the developer's AI provider account | Agents | Agent |
| Ingress | Devices that do not speak MoQ cannot publish | Takes streams from streaming software and broadcast equipment and publishes them at a path | Ingress | Ingress |
The programs run for every project. The keys and destinations they need are the project's environment variables (Tablebox's programs).
Guarantees
- G1. Removed people, and the people connected to a range of paths that was closed, are cut off. Use stops when it reaches the limits the developer set.
- G2. Exchanges keep going while the management side is down.
Scale
- S1. Adding servers adds the people and paths that can be handled. People who read and write the same paths work together whichever server they are connected to.
- S2. 100,000 people can connect to one range of paths. What each person receives depends on what that person reads, not on how many people there are.
The parts
| Part | What it does |
|---|---|
| Relay | Delivers MoQ: admits a connection by a token or a link, holds it to its rights, and carries what is published to whoever reads it, across Relays |
| SDK | Connects from browsers, Node and Rust, and publishes, reads, lists and serves paths with the official MoQ objects |
| Manager | Keeps the PaaS: accounts, projects, keys, links, variables, removals, closings, usage and limits. It is never on the path of what people exchange |
| Console | The screens for Manager |
| Tablebox's programs | Aggregation, Persistence, Egress, Agent and Ingress, which connect to Relay as participants do |
Apps talk to Relay through the SDK. A developer's backend signs tokens with a project key and calls Manager only to manage.
Where to go next
- Get started: a link in Console and a browser page that publishes its camera and plays everyone else's, then a backend that signs tokens.
- Connecting, Publishing and reading and Serving: what the SDK does.
- Tablebox's programs, then Aggregation, Persistence, Egress, Agent and Ingress.
- Managing projects and Reference.