Stubborn Contract
stubborn.sh
What it is
Stubborn Contract is the official continuation of Spring Cloud Contract, providing consumer-driven contract testing for HTTP and message-based interactions. The contract-testing core and Stubborn Broker OSS use the Apache 2.0 license and are free to use, modify, and deploy. YAML, Groovy, Java, and Kotlin formats are supported, and existing Groovy DSL, YAML, and Java DSL contracts can remain during migration. Contracts can be published through Maven or Gradle plugins or the CLI. Stubborn Broker verifies contracts across branches and services and offers a CI-oriented can-i-deploy check. Listed Broker capabilities include branch-aware governance, AI contract creation from captured HTTP traffic, and MCP integration for AI agents, with SDKs for Java, Kotlin, JavaScript, and TypeScript. Version 0.1.2 adds Spring-free Kafka, RabbitMQ, and JMS building blocks and runs on Java 17 or later. An OpenRewrite recipe automates mechanical migration. Broker can run locally with Docker on port 8080.
Spec sheet
- Purpose
- Stubborn Contract is the official continuation of Spring Cloud Contract, providing consumer-driven contract testing for HTTP and message-based interactions.Read 5 Oct 2026 · github.com
- Broker features
- The Broker page lists branch-aware governance, AI contract generation from captured HTTP traffic, and AI-agent integration through MCP.Read 5 Oct 2026 · stubborn.sh
- Broker governance
- Stubborn Broker verifies contracts across branches and services and provides a CI-friendly can-i-deploy check.Read 5 Oct 2026 · stubborn.sh
- Build integrations
- Contracts can be published through Maven or Gradle plugins, or through the CLI.Read 5 Oct 2026 · stubborn.sh
- Community support
- Community support is best effort through GitHub issues, with no public SLA for free support.Read 5 Oct 2026 · stubborn.sh
- Enterprise support
- Enterprise Partnerships include direct maintainer communication and support for integrating the project into an organization’s CI/CD and deployment pipelines.Read 5 Oct 2026 · stubborn.sh
- HTTP and messaging
- The testing project supports contracts for both HTTP and message-based interactions.Read 5 Oct 2026 · github.com
- Languages
- The Broker page lists Java, Kotlin, JavaScript, and TypeScript SDK support.Read 5 Oct 2026 · stubborn.sh
- Messaging integrations
- Stubborn Contract 0.1.2 adds Spring-free messaging building blocks for Kafka, RabbitMQ, and JMS.Read 5 Oct 2026 · stubborn.sh
- Migration
- The migration guide says an OpenRewrite recipe automates mechanical migration steps from Spring Cloud Contract.Read 5 Oct 2026 · stubborn.sh
- Open-source license
- The contract-testing core and Stubborn Broker OSS are licensed under Apache 2.0 and are free to use, modify, and deploy.Read 5 Oct 2026 · stubborn.sh
- Runtime requirement
- Stubborn Contract 0.1.2 runs on Java 17 or later and is listed as tested with Java 21 and 25 and Spring Boot 4.1.Read 5 Oct 2026 · stubborn.sh
- Self-hosting
- The Broker page provides a Docker command to run the server locally on port 8080.Read 5 Oct 2026 · stubborn.sh
- Supported formats
- Existing Groovy DSL, YAML, and Java DSL contracts continue to work during migration.Read 5 Oct 2026 · stubborn.sh
- Who it is for
- Enterprise Partnerships are offered to organizations that rely on Stubborn Contract in production and want migration planning, roadmap participation, or dedicated support.Read 5 Oct 2026 · stubborn.sh
Plans and prices
Strong points and limits
Strong points
- Apache 2.0 open-source core
- Supports HTTP and message contracts
- Branch-aware Broker verification
- Maven, Gradle, and CLI publishing
- Self-hosted Docker deployment
Limits
- Free support has no public SLA
- Version 0.1.2 requires Java 17 or later
Who it suits
It suits teams practicing consumer and provider verification across HTTP or messaging services. Organizations needing migration help, roadmap input, or dedicated support can consider the Enterprise Partnership.
Verdict
Stubborn Contract offers an open-source path for contract testing with registry and deployment options. Teams should distinguish best-effort community help from the separately scoped Enterprise Partnership.
Where Specifiction places it
- Contract Testing Tools#19 of 227.3