mTLS Without a Service Mesh: Patterns That Work

Service meshes deliver mTLS by default and sell complexity by default. For many teams, lighter patterns are the right answer.

When to skip the mesh

Service meshes deliver mTLS, but their value goes well beyond mTLS: traffic routing, observability, policy enforcement. If you only need mTLS, paying for a service mesh is paying for the wrong tool. Three lighter patterns deliver mTLS without the mesh footprint.

SPIFFE/SPIRE

SPIFFE/SPIRE is dedicated workload-identity infrastructure. Certs are issued and rotated automatically; CNCF-graduated; battle-tested. Excellent if you can afford the install plus ongoing operation; the operational tax is real but bounded.

Library-based mTLS

Library-based: per-language SDK that handles cert request, rotation, and TLS termination in-process.

Good for polyglot environments where adding a sidecar is expensive.

Sidecar-without-mesh

Sidecar-without-mesh: Envoy or Linkerd2-proxy as a TLS sidecar without the control plane.

Mid-weight: more complex than library, less than full mesh.

Antipatterns

What to do this week

Three moves. (1) Pick one production system to apply this pattern to first. (2) Measure the security signal before/after. (3) Document the gap and write a follow-up ticket so the program stays alive between quarterly reviews.