# The fastest backend for AI agents to discover

> A Synsema API is discovered by an agent in 1.37 ms, ahead of Go and Node — and the discovery documents are generated, not written.

Published 2026-06-20 · https://synsema.org/blog/fastest-backend-for-ai-agents


Before an LLM can use your API it has to discover it: `robots.txt`, the sitemap, `/llms.txt`, the
plugin manifest, OpenAPI, a health check. That handshake runs on every cold interaction — so its
latency matters.

## One agent, full discovery handshake

| Stack | Total (avg) |
|---|---|
| Synsema | 1.37 ms |
| Go | 1.83 ms |
| Node | 1.97 ms |
| FastAPI | 4.89 ms |

Synsema has the lowest discovery latency — ahead of Go and Node. Under a 50-agent swarm it also has
the lowest per-agent latency (22 ms vs Go's 43 ms).

## The part the others don't have

Matching Go and Node on speed is table stakes. The difference: Synsema is secure by default, and
`/llms.txt`, `/sitemap.xml` and `/openapi.json` are **derived from the route table** — the same route
serves HTML to humans and Markdown/JSON to agents automatically, and the documents that describe
the API can never drift from the code that serves it.

```synsema
require serve(8080)

serve on 8080
    describe
        about: "Bookshop API"
        api: ["GET /books -- the catalogue", "POST /orders -- place an order"]

    route "GET /books"
        give content(page([heading(1, "Books")], {"title": "Books"}))
```

That is the whole setup. `/llms.txt`, `/robots.txt`, `/sitemap.xml`, `/openapi.json` and a `/docs`
page exist the moment the server starts. This very post is the demo: add `.md` to its URL, or send
`Accept: text/markdown`.

