Isolate the variable: same client, same logical task, individual calls versus one semantic batch call
Run 5b is a controlled follow-up to Run 5. It reuses the exact Run 5 HttpClient and manual JSON-RPC MCP transport, unchanged, against both endpoints, so the client itself cannot explain any difference between them. The only thing that changes is the shape of the request: the conventional path sends batchSize individual transfer_funds MCP calls, while Foundgine sends one transfer_funds_batch MCP call carrying the same batchSize logical transfers. The matrix repeats Run 5's four workload tiers (10, 100, 1,000, 10,000 customers) and four concurrency levels (8, 16, 32, 64), with 5 warmups and 30 measured runs per cell.
Both paths use the same HttpClient
The transport is deliberately held constant so the comparison isolates one variable: how many MCP calls carry the same logical work.
With the same client on both sides, Foundgine's single batch call outperformed the conventional path's individual calls at every workload and every concurrency level tested, including C64 — no cliff appeared. Averaged across all 16 workload/concurrency cells, Foundgine sustained about 2.95× the conventional path's RPS (range 2.22×–3.78×) and 3.7×–6.4× lower average wall time. At 10,000 customers/C64 specifically, Foundgine averaged about 4,291 RPS versus 1,571 RPS for the conventional path, with 74 ms versus 311 ms average wall time. Tool calls were 8 → 1 per task in every cell, since batch size is fixed at 8 independent of concurrency. Foundgine's total task payload was 1.3×–1.8× larger than the conventional path's despite the 8× fewer calls — the win comes from eliminating round-trips, not from sending fewer bytes. Zero failures across all 960 published samples.
Read the finding first, then inspect the exact evidence.
This page tells the story of the experiment. The benchmark explorer contains the interactive workload/concurrency matrix and selected-cell comparison for Run 5b, alongside Runs 2, 4 and 5.
The benchmark distinguishes measured timings and tool calls from its estimated context-load heuristic. Payload size (bytes sent and received) is measured directly, not estimated.
← Benchmark landing page · Run 5 · How it works · Architecture