SDKs
First-party recorders for Node.js, Python, Go and Java, plus a plain HTTP ingest for everything else.
Supported languages
| Language | Package | Minimum version |
|---|---|---|
| Node.js | @fenwright/recorder |
Node 18 |
| Python | fenwright-recorder |
Python 3.9 |
| Go | fenwright.example/recorder |
Go 1.21 |
| Java | example.fenwright:recorder |
Java 17 |
Every SDK exposes the same three options: service, key and redact. Framework integrations for Express, Fastify, Django, FastAPI and Spring record requests, queue messages and database calls without further code.
What the recorder costs
Events are buffered in memory and flushed in batches off the request path. Measured overhead is under 0.3 ms at p99 on a busy service. If the ingest endpoint is unreachable, the buffer drops the oldest events rather than blocking your process, and a gap marker is written into the recording so a replay never pretends the hour was complete.
Anything else
Services in other languages can POST newline-delimited JSON to the ingest API. Each line needs a timestamp, a stream name and a payload; see the Replay API page for the schema.