Specmatic
Context
In a complex, interdependent eco-system, where each service is evolving rapidly, we want to make the dependencies between them explicit in the form of executable contracts. Contract Driven Development leverages API specifications like OpenAPI, AsyncAPI, etc. as executable contracts allowing teams to get instantaneous feedback while making changes to avoid accidental breakage.
With this ability, we can now independently deploy, at will, any service at any time without having to depend on expensive and fragile integration tests.
What is Specmatic
Specmatic embodies contract driven development (CDD) by leveraging API specifications as executable contracts.
- Contract as Tests - Generating free tests on the fly based only on you API specifications making sure that your implementation is always adhering to your API specification
- Contract as Stub - Stubbing a service based on its API specification, that too with the guarantee that your response mappings will always be in sync with your API specs
- Backward Compatibility Testing (#NOCODE) - Identify backward breaking changes well ahead of time even before write any code based only on your API specifications
- Central Contract Repository - Single source of truth for your API Specifications
- API First Design - CDD encourages putting API design first rather than design being a byproduct of service implementation
Our Goal is to support various types of Interactions
Systems interact with each other through several means. Specmatic hopes to address all these mechanisms and not just web interactions.
- API calls (JSon REST, SOAP XML, gRPC, Thrift, other binary protocols)
- Events via Messaging (Kafka, Redis, ActiveMQ, RabbitMQ, Kinesis, etc.)
- DB, Other Data Stores
- File system
- Libraries, SDK
- OS Level Pipes
Learn more at specmatic.in