Hi everyone :wave: Our team is considering using P...
# general
m
Hi everyone 👋 Our team is considering using Pact for contract testing of message flows over Kafka and Apache Pulsar, while also leveraging the Schema Registry in both systems for schema validation ( with
BACKWARD
compatibility type). Could you help clarify the main business cases for using both Pact and Schema Registry together? Specifically: • If we are already using the Schema Registry to enforce message structure and compatibility, does Pact contract testing become redundant? • Or does Pact provide additional value beyond schema validation? • If we decided to write contract tests for a Apache Pulsar messaging system, does Pact have any sort of integration - is it ready for that? (I wasn't able to find the necessary materials on this topic - everything is kafka centered 😅). Thank you very much for your insights!
@Matt (pactflow.io / pact-js / pact-go) Have you dealt with this topic somewhere, or is there any documentation/article available on it? 🙏 (Unfortunately, I haven't been able to find anything myself.)🥺 It would help us make the case to our management for moving from the OSS Pact Broker to PactFlow
m
If we decided to write contract tests for a Apache Pulsar messaging system, does Pact have any sort of integration - is it ready for that? (I wasn’t able to find the necessary materials on this topic - everything is kafka centered
short answer is I’m not sure - Kafka is the most popular system in this area, so we use it as guidance. As you can imagine, there are a LOT of these types of tools so we can’t document all of them. But in general, Pact treats them the same (we abstract the protocol, and focus on the content/payload). 👉 This is the main workshop for what is called “Message Pact” https://docs.pact.io/university/message-pact-async/00_1_Intro (and related video) -- I think we have some articles specifically on the benefits of Kafka, but I’m struggling today to find what I want. I’m pretty sure somebody at confluent wrote a good blog on this (I know they’re using Pact internally somewhere). I know Phil from Mettle was using the Avro with Kafka (he might mention it in

this talk

). He was a fan of the ability to get feedback locally. My recollections: 1. The schema registry is runtime, so you need to deploy before you can find out (this might be OK) a. It probably does much of what you need, otherwise 2. The additional features of the CI/CD tooling (e.g.
can-i-deploy,
deployment info and generalised workflow across protocols) with the broker are other stated benefits Some additional articles/pointers • Old AMA on messages/kafka: https://docs.pact.io/help/amas#ukeu • General talk on non-REST services: https://pactflow.io/blog/contract-testing-for-grpc-and-protobufs/ • Some guidance for Java https://docs.pact.io/recipes/kafka#kafka-json-consumer