Build on top

Build on top of evlog

Live event observation, custom drains, plugins, custom enrichers, identity headers, framework integration — everything you can wire on top of the evlog pipeline.

evlog is designed to be extended on both ends — you can observe what flows through (without altering the pipeline), or plug into the pipeline itself (sources, enrichers, drains).

This section bundles every extension surface in one place. Each page is short, focused, and copy-paste oriented.

I want to…

QuestionAnswer
Subscribe in-process from a script or testIn-process stream
See events live while I dev (browser tab, CLI)Stream server
Replay or tail historic logsFS reader
Build a small consumer panel / devtoolConsumer recipes
React to specific events (alert, side-effect, tracing)Plugins
Tint events with my own context (tenant id, deploy id…)Custom enrichers
Decide whether to keep an event based on the request outcomeTail sampling
Add a service that receives my logs (Axiom, an internal API…)Custom drains
Combine several drains with retry, batching, fanoutDrain pipeline
Send events to several backends in parallelFanout & multi-drain
Identify my evlog traffic on the receiver sideIdentity headers
Support a framework that's not in the listCustom framework

A note on serverless

The in-process stream and the stream server work everywhere a Node-like long-lived process runs — local dev, self-hosted servers, containers (Fly, Railway, Coolify), VMs.

They do not work on serverless platforms (Vercel Functions, Cloudflare Workers, AWS Lambda) because each invocation is an isolated process. Use a real broker (Redis Streams, NATS, Pub/Sub) for cross-instance fan-out in those environments.

The FS reader, identity headers, and the rest of the pipeline / drain extension surfaces work everywhere.