Overview
Thedata-mesh-contract command generates comprehensive data product contracts that follow data mesh architectural principles. It creates standardized contract definitions including schema specifications, data quality rules, service level objectives (SLOs), access policies, and governance metadata.
This command helps organizations implement data mesh practices by treating data as a product with clear contracts, ownership, and quality guarantees.
Usage
Key Features
- Data Product Definition: Complete data product metadata including domain, ownership, and lifecycle
- Schema Specifications: Detailed field definitions with types, constraints, and business meaning
- Quality Contracts: Data quality rules, validation logic, and acceptance criteria
- SLO Definitions: Service level objectives for availability, freshness, completeness, and accuracy
- Access Policies: Consumer access patterns, authentication, and authorization requirements
- Governance Metadata: Classification, lineage, retention policies, and compliance tags
- Versioning Strategy: Semantic versioning with backward compatibility guarantees
- Integration Patterns: API specifications, event schemas, and batch transfer formats
Arguments
Optional Arguments
--domain <name>: Data domain name (e.g., “customer”, “order”, “product”)--product <name>: Data product name within the domain--version <semver>: Contract version (semantic versioning: MAJOR.MINOR.PATCH)--format <type>: Output format -json,yaml, ormarkdown(default:yaml)--template <path>: Custom contract template file path--strict: Enable strict validation mode with enhanced quality checks--output <path>: Custom output file path (default:data-mesh/contracts/<domain>-<product>-contract.yaml)
Output
Generates a comprehensive data mesh contract file containing:Contract Structure
-
Product Metadata
- Data product identifier and version
- Domain and subdomain classification
- Owner team and contact information
- Lifecycle stage (development, production, deprecated)
-
Schema Definition
- Field names, types, and formats
- Required vs optional fields
- Business definitions and semantics
- Constraints and validation rules
-
Quality Contract
- Completeness thresholds
- Accuracy requirements
- Consistency rules
- Timeliness guarantees
-
Service Level Objectives
- Availability targets (e.g., 99.9% uptime)
- Freshness SLOs (e.g., data latency < 15 minutes)
- Completeness SLOs (e.g., >95% fields populated)
- Response time guarantees
-
Access & Integration
- Consumer interface specifications (REST API, events, batch)
- Authentication and authorization requirements
- Rate limits and quotas
- Sample queries and usage examples
-
Governance
- Data classification level (public, internal, confidential, restricted)
- Retention and archival policies
- Lineage and dependencies
- Compliance tags (GDPR, HIPAA, etc.)
Example Output Location
Examples
Generate Basic Contract
Generate Contract with Version
Generate JSON Format Contract
Generate with Custom Template
Generate with Strict Validation
Prerequisites
Required Artifacts
While the command can generate a baseline contract from templates, it works best when these artifacts exist:- Domain Model (
domain-model.yaml): Defines domain boundaries and data products - Data Dictionary (
data-dictionary.yaml): Field definitions and business glossary - Architecture Decision Records: Decisions about data mesh implementation
Recommended Setup
- Define your data domains and products
- Establish ownership and team structures
- Set organizational SLO standards
- Define classification and governance policies
Data Mesh Principles
The generated contracts embody the four principles of data mesh:- Domain Ownership: Clear domain and owner identification
- Data as a Product: Treating data with product thinking (usability, quality, SLOs)
- Self-serve Platform: Standard contract format enables automated provisioning
- Federated Computational Governance: Embedded governance metadata and policies
Contract Elements
Schema Types Supported
- Structured data (relational, columnar)
- Semi-structured data (JSON, XML)
- Event streams (Kafka, Kinesis)
- Document stores (MongoDB, DynamoDB)
- Time-series data
SLO Categories
- Availability: Uptime and accessibility guarantees
- Freshness: Data latency and update frequency
- Completeness: Required field population rates
- Accuracy: Validation pass rates and error thresholds
- Consistency: Cross-system reconciliation requirements
Access Patterns
- Synchronous: REST APIs, GraphQL
- Asynchronous: Event streams, message queues
- Batch: File transfers, bulk exports
- Query: SQL interfaces, search APIs
Integration with Other Commands
Quality Assurance
Traceability
Documentation
Best Practices
-
Version Semantically: Use semantic versioning (MAJOR.MINOR.PATCH)
- MAJOR: Breaking schema changes
- MINOR: Backward-compatible additions
- PATCH: Documentation or metadata updates
- Define Realistic SLOs: Base SLOs on actual capabilities and monitoring
- Document Business Context: Include clear business definitions for all fields
- Specify Access Patterns: Clearly define how consumers should access data
- Include Examples: Provide sample queries and usage patterns
- Review Regularly: Treat contracts as living documents that evolve
- Automate Validation: Integrate contract validation into CI/CD pipelines
Contract Validation
The command validates contracts against:- Schema completeness and consistency
- SLO measurability and realism
- Governance policy compliance
- Versioning standards
- Access pattern specifications
Related Commands
analyze- Validate data quality against contract SLOstraceability- Link contracts to requirements and systemspages- Generate data product catalog documentationtemplate-builder- Create custom contract templates