Demultiplexing
Broadcast one tool call to many systems simultaneously
Demultiplexing (demux) is the inverse of multiplexing. Instead of aggregating many integrations behind one endpoint, demux fans out a single tool call to multiple target servers at once โ in parallel โ and returns all results together.
Modes
Strict Mode
Executes the exact same tool on every target server that has it. Tool names must match exactly.
Example: Call quickbooks@1/create_invoice@1 with demux: true and demux_mode: "strict". The invoice is created on every QuickBooks server configured as a demux target โ production, staging, and disaster recovery โ simultaneously.
Fuzzy Mode
Executes semantically equivalent tools based on Semio type compatibility. The system finds tools that produce the same semantic output type across different integrations, even if their names differ.
Example: Call quickbooks@1/create_invoice@1 with demux_mode: "fuzzy". The system finds all tools that produce billing.invoice@1 โ QuickBooks, SAP, NetSuite โ and executes them in parallel.
How to Use
Enable a Server as a Demux Target
- Open Server Settings โ Policy
- Toggle Enable as Demux Target
-
Configure permissions:
- Allow write operations โ whether write calls replicate to this server
- Enable fuzzy matching โ whether semantic type matching is allowed
Make a Demux Call
Add demux: true to any tool call. Works with discovery.perform, flow.into, or a direct JSONRPC call:
{
"name": "data-grout@1/discovery.perform@1",
"arguments": {
"tool": "quickbooks@1/create_invoice@1",
"args": { "customer_id": "123", "amount": 5000 },
"demux": true,
"demux_mode": "strict"
}
}
Or via the Demux global tool argument (enabled in Interaction Settings), which adds demux and demux_mode parameters to every tool on your server.
Response Format
Results come back as an array, one entry per target server:
{
"mode": "strict",
"results": [
{
"success": true,
"server": "uuid-production",
"server_name": "QB Production",
"result": { "invoice_id": "INV-001" }
},
{
"success": true,
"server": "uuid-staging",
"server_name": "QB Staging",
"result": { "invoice_id": "INV-002" }
},
{
"success": false,
"server": "uuid-dr",
"server_name": "QB DR",
"error": "Rate limit exceeded"
}
],
"total_targets": 3,
"successful": 2
}
For read operations, results are aggregated by integration type and merged into a single list.
Use Cases
Multi-Environment Replication
Write to production, staging, and disaster recovery simultaneously. Every write replicates across all configured targets automatically.
Cross-System Reporting
Query invoices, accounts, or any entity across QuickBooks, SAP, and NetSuite in one call. Get all results back merged, without writing separate queries for each system.
Disaster Recovery
Mark backup servers as demux targets. All write operations replicate to them automatically without changing agent code.
Safety Controls
Write Protection
By default, demux targets reject write operations. Enable Allow write operations only for servers where writes are intentional and safe.
Fuzzy Mode Opt-In
Fuzzy matching must be explicitly enabled per server. This prevents accidental cross-system execution when tools have similar but semantically different outputs.
Partial Failure
Demux does not require all targets to succeed. If one server fails or times out, others continue. The response reports both successful and failed targets.
Performance
- Targets execute in parallel (up to 10 concurrent)
- Per-target timeout: 30 seconds
- Failing targets do not block successful ones
Related
- Multiplexing โ Aggregate many integrations behind one endpoint
- Interaction Settings โ Enable Demux as a global tool argument
- Semio Types โ How fuzzy mode matches tools by semantic type