At the moment, can-i-deploy returns false if you're trying to deploy a consumer without a provider, but true if you're trying to deploy a provider without a consumer.
This is appropriate behaviour if the consumer is an HTTP client, and the provider is an HTTP server.
In some contract types (eg SQS messages), both sides can safely deploy without the other one there.
With websockets, an HTTP client might be the producer.
A common scenario for websockets is two contracts - one between the client(consumer) and the servir (producer), and the other between the server (consumer) and the client(producer). The current behaviour of the broker will make it impossible to deploy a websocket server without a client, and impossible to deploy the client without the server.
All these problems could be fixed if it was possible to specify at a contract level which of the consumer / provider need to be present (or not) in order to deploy.
At the moment, can-i-deploy returns false if you're trying to deploy a consumer without a provider, but true if you're trying to deploy a provider without a consumer.
This is appropriate behaviour if the consumer is an HTTP client, and the provider is an HTTP server.
In some contract types (eg SQS messages), both sides can safely deploy without the other one there.
With websockets, an HTTP client might be the producer.
A common scenario for websockets is two contracts - one between the client(consumer) and the servir (producer), and the other between the server (consumer) and the client(producer). The current behaviour of the broker will make it impossible to deploy a websocket server without a client, and impossible to deploy the client without the server.
All these problems could be fixed if it was possible to specify at a contract level which of the consumer / provider need to be present (or not) in order to deploy.
https://pact.canny.io/admin/board/feature-requests/p/ability-to-tell-the-broker-whether-a-missing-consumer-or-missing-provider-is-saf