Benzene documentation

Benzene gives every transport what a modern web framework gives HTTP — a middleware pipeline, per-request scoping, and handlers you can test. An HTTP request, an SQS message, and a Kafka event are fundamentally different things, and normally that means building a different service for each. With Benzene you write one handler and reach it over all of them at once — you add a transport in the host wiring, never in your logic.

Start building in .NET

Benzene is pre-1.0 — packages are published as prerelease, and the docs mark anything partial or planned as such.

Your Message Handlers ASP.NET Core AWS Lambda Azure Functions Kafka Cloudflare gRPC / Worker

Pick your language

Benzene is one design with an idiomatic implementation per language, so the concepts below are the same whichever you choose.

.NET reference

Build your first service, host it, test it without the cloud, and run it in production — in .NET.

Start here → · Browse the .NET docs

Go

Build your first service, host it, test it without the cloud, and run it in production — in Go.

Start here → · Browse the Go docs

TypeScript

Build your first service, host it, test it without the cloud, and run it in production — in TypeScript.

Start here → · Browse the TypeScript docs

Python

Build your first service, host it, test it without the cloud, and run it in production — in Python.

Start here → · Browse the Python docs

Guides

Language-neutral guides to Benzene's concepts and tooling, true for every port. Start with the overview →

Patterns

Recurring ways of composing Benzene's core building blocks into services, the same shape in every language. Start with the overview →

The specification

You don't need this to build a service. Benzene is defined by a language-neutral specification — concepts, wire contracts, transport bindings, and conformance fixtures — that every language port implements. Read it if you're porting Benzene to a new language, verifying conformance, or you want the normative detail behind something in the guides. Start with the overview →