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 and throughput reconstructed using the runner's slowest-worker-per-iteration method, Foundgine's single batch call outperformed the conventional path's individual calls in every one of the 16 published cells. The corrected advantage ranges from about 2.19× to 3.79× RPS (mean about 2.86×). At 10,000 customers/C64, Foundgine averaged about 3,570 logical transfers/s versus 1,582, with average task wall time about 92 ms versus 308 ms. Tool calls were 8 → 1 per task and the published samples contain zero failures.
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