Skip to content

Phase 6: Support distributed validation across multiple developers #1

@nakurian

Description

@nakurian

Problem

When two developers work on different services (e.g., UI expert on web-ui, backend expert on order-service), Phase 6 (Validate) assumes all services are available locally on one machine. This breaks in real multi-developer workflows.

Scenarios to support

  1. Dev A has UI, Dev B has backend — validation needs both services running. Currently no way to point at a remote service.
  2. Shared dev environment — services deployed to a shared dev/staging cluster where validation can run against real URLs.
  3. Docker compose across local builds — one developer pulls the other's image from a registry instead of building locally.

Proposed solution

Add a validation section to manifest.yaml per service:

services:
  - name: "order-service"
    validation:
      strategy: "local"          # local | remote | docker-image
      remote_url: ""             # if remote: http://dev.internal:5001
      docker_image: ""           # if docker-image: ghcr.io/org/order-service:latest

The validate phase should:

  • Check each service's validation.strategy
  • For local: use local_path and start via docker-compose
  • For remote: use the remote_url directly (skip docker-compose for this service)
  • For docker-image: pull and run the image instead of building from source
  • Generate a docker-compose.yaml that mixes local builds and remote images

Additional considerations

  • The validate phase should support a "contract-only" mode where it validates contracts without running services (for when not all services are available)
  • Add guidance for setting up a shared dev environment URL in manifest.yaml environments section
  • Consider integration with Testcontainers for spinning up dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions