Tessera¶
Service contract coordination — stop breaking each other's APIs.
Tessera helps teams coordinate schema changes across service boundaries. When a producer wants to make a breaking API change, consumers are notified and must acknowledge before the change goes live.
Why Tessera?¶
Teams face a common problem: breaking changes break other teams' services. Dependencies between services are invisible unless someone manually documents them.
- A team removes a field from their REST API
- Three other services that depend on that field break in production
- The team that made the change only finds out when another team's oncall pages at 2 AM
- Everyone scrambles to fix it
Tessera solves this by making dependencies explicit and breaking changes coordinated:
- Producers publish contracts - JSON Schema definitions of their API endpoints, gRPC methods, GraphQL operations, or data models
- Consumers register dependencies - Teams declare which contracts they depend on
- Breaking changes require acknowledgment - Before a breaking change goes live, all consumers must acknowledge
Key Features¶
- Schema Diffing - Automatically detect breaking vs non-breaking changes across any JSON Schema source
- Consumer Registration - Track who depends on what
- Proposal Workflow - Coordinate breaking changes across teams
- Sync Adapters - Import contracts from OpenAPI specs, GraphQL introspection, gRPC/protobuf definitions, and dbt manifests
- Audit Logging - Track all contract changes and data quality events
- Web UI - Visual interface for managing contracts and proposals
Quick Example¶
import httpx
# Publish a contract for your asset
response = httpx.post(
"http://localhost:8000/api/v1/assets/my-asset-id/contracts",
params={"published_by": "your-team-id"},
json={
"schema": {
"type": "object",
"properties": {
"user_id": {"type": "integer"},
"email": {"type": "string"},
"created_at": {"type": "string", "format": "date-time"}
},
"required": ["user_id", "email"]
},
"compatibility_mode": "backward"
}
)
If you later try to remove email (a breaking change), Tessera will:
- Create a Proposal instead of publishing immediately
- Notify all registered consumers
- Wait for acknowledgments before allowing the change
Getting Started¶
-
Quickstart
Get up and running in 5 minutes with Docker
-
Installation
Install Tessera in your environment
-
AI Agent Integration
Give your AI agents contract-aware guardrails
-
Concepts
Understand how Tessera works
-
API Reference
Complete API documentation
Architecture¶
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ OpenAPI Spec │ │ GraphQL Schema │ │ gRPC/Protobuf │ │ dbt Manifest │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │ │
└────────────────────┼────────────────────┼────────────────────┘
▼
┌─────────────────┐
│ Tessera │
│ Server │
│ (JSON Schema) │
└────────┬────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌─────────────────┐ ┌───────────────┐
│ Producer │ │ Consumer │ │ Consumer │
│ Team A │ │ Team B │ │ Team C │
└───────────────┘ └─────────────────┘ └───────────────┘
License¶
Tessera is open source under the Apache License 2.0.