Patterns

Recurring ways of composing Benzene's core building blocks — topics, message handlers, the middleware pipeline, results, and per-invocation scopes (core-concepts.md) — into real services, and whole systems of services. A pattern here is not part of the normative specification and it is not a feature of any one language: it is a shape that falls out of the core model and reads the same whether the service is written in .NET, Go, TypeScript, or Python.

Each pattern explains the idea and when to reach for it. How to express it — the exact API, the package, the attribute or the registration call — is language-specific and lives in that port's own docs; where a pattern shows a concrete call it is marked (informative, .NET) and the shape, not the syntax, is the point.

Two scales of pattern:

Composing one service — the shapes a single Benzene service is built from:

Composing a system — how to arrange many services into an estate:

At enterprise scale — high-volume, real-time, and audit-heavy workloads, with worked examples of the kind of systems large enterprises ask to have designed: