Skip to main content

The Regression You Can't See: Why Microsecond API Timing Matters

Millisecond rounding hides slow drift until it compounds into an incident.

1000×Finer resolution than millisecond timing
4+Protocols: REST, GraphQL, gRPC, SOAP
P50/P95/P99Percentiles tracked per request

Death by rounding

A service that responds in 3ms and a service that responds in 9ms both report "single-digit milliseconds" on most dashboards, and often both round to the same bucket. But one of them just got three times slower. Chain five services like that in a request path and the user-facing budget is gone, with every individual dashboard still green.

Precision as an early-warning system

Our API studio records timing at microsecond precision, a thousand times finer than millisecond displays, across REST, GraphQL, gRPC, and SOAP. At that resolution, drift is visible while it is still one bad query or one chatty serializer, not an incident. Paired with per-request P50/P95/P99, "it feels slower lately" becomes a chart with a date on it, which is the difference between a hunch and a ticket.

Do this with your own APIs

  • Pick your five most-called endpoints and baseline their P95 this week.
  • Alert on relative drift (say +50% from baseline), not only absolute thresholds.
  • Chart 30 days of history before and after each release, because regressions cluster around deploys.

How we measured this

  • Timings are captured with the runtime high-resolution timer (process.hrtime.bigint, nanosecond resolution) at request start, first byte and end, and reported in microseconds.
  • P50, P95 and P99 are computed over the samples retained for a request. A single run shows its own timing, not a percentile.
Engineering

Your Scanner Is Crying Wolf: Ending False-Positive Fatigue With Evidence

The problem: vulnerability scanners flood teams with unconfirmed findings, and triage eats the time that should go to fixing. Our approach: an attack-confirmation engine that verifies findings with real evidence: the request, the response and the proof, bundled with every report.

8 min read
Engineering

JMeter Power Without the XML Misery

JMeter is powerful and miserable to maintain. Our performance engine keeps the thread groups, timers and assertions load engineers rely on, puts them behind a UI, adds P50, P95, P99 and Apdex, and exports to k6, JMeter and Locust.

9 min read
Engineering

How We Made a React SPA Readable by AI Answer Engines Without Adding a Dependency

Most AI crawlers do not run JavaScript, so a Vite and React marketing site is invisible to them. We prerender every sitemap route at build time with Playwright, assert the head tags and JSON-LD on each page, name every crawler in robots.txt, and force noindex while the site URL is still a placeholder. Zero new packages. Here is the mechanism, and what it does not solve.

9 min read

See it on your own project

14-day free trial. No credit card. Import your existing tests and measure the difference on your own numbers.

Start Free Trial View Pricing

Your choice about analytics

We use one optional analytics tool, run on our own servers, to see which pages help people. It stays off unless you turn it on. Storage needed to sign you in, keep the site secure and remember this choice is always on. Cookie Policy