Back to browse
GitHub Repository

Pacto (/ˈpak.to/ — from Spanish: pact, agreement) is an open, OCI-distributed contract standard for cloud-native services.

23 starsGo

Pacto – A runtime contract for cloud-native services

by edu-diaz·Mar 9, 2026·1 point·0 comments

AI Analysis

●●●BangerBig BrainSolve My ProblemZero to One

OCI-distributed service contracts beat scattering config across six different files.

Strengths
  • Captures interfaces, runtime semantics, dependencies, and scaling in single pacto.yaml.
  • OCI artifact distribution enables versioning, diffing, and registry-based sharing.
  • Detects breaking operational changes in CI before they hit production.
Weaknesses
  • Needs platform team adoption to become useful — chicken-and-egg problem.
  • Competes with Backstage, service meshes, and existing service catalog tools.
Target Audience

Platform engineers managing cloud-native services

Similar To

Backstage · Open Service Broker API · Crossplane

Post Description

Author here.

I work as a platform engineer and kept running into the same issue: the operational behavior of a service is never defined in one place.

Parts of it live across different tools:

APIs in OpenAPI Deployment assumptions in Helm values Runtime details in Kubernetes manifests Configuration in env vars Dependencies in READMEs or tribal knowledge

So platforms end up reverse-engineering how services behave.

Pacto is an attempt to define a machine-readable runtime contract for services.

A contract can describe things like:

interfaces (HTTP, gRPC, events) runtime semantics (stateless, stateful, hybrid) service dependencies configuration schema scaling expectations

All of this lives in a single pacto.yaml file that can be validated, diffed, and distributed as an OCI artifact.

The CLI currently supports: • validating contracts • detecting breaking operational changes (pacto diff) • resolving dependency graphs • packaging contracts as OCI artifacts

One thing I found particularly useful is making state semantics explicit, for example:

runtime.state.type: stateless | stateful | hybrid

This allows platforms to reason about storage, lifecycle and scaling without relying on implicit assumptions.

The project is still early but already usable. Curious to hear feedback from other platform or infrastructure engineers.

Similar Projects