Pact is great for HTTP microservices that communicate directly with each other, but many services use an intermediate system that acts as a pipe (eg. a queue, S3 bucket). The agreement about the format of the message is really between the two ends of the chain, not between the links immediatly adjacent.
The pact concept should be able to be applied to non-http services. The code below is an attempt to come up with a DSL for a new pact library that uses the same pact matching concepts, but does not constrain the communication protocol.
Thoughts/improvements appreciated, but remember Gists do not send notifications when you post a comment :|
Conceptually, this is harder to follow than the original pact. The fact that you need to create the fixture, then use it to stub something in a two stage process is a bit conceptually inelegant.