Our very own members of the pact community <@U02SB...
# pact-jvm
y
Our very own members of the pact community @Andy Muir has been kind enough to help with some Kafka pact recipes for our docs website here and also has a new supporting blog post out. Feel free to take a read https://muirandy.wordpress.com/2022/03/03/contract-testing-with-pact-kafka-and-schema-registry-part-2/ Thanks Andy!
🙌 1
a
Hello @Yousaf Nabi (pactflow.io) how are you? Im a little bit confused regarding the official support to avro, protobufs and grpc. Does Pactflow have an official support for these features? Can we consider this post as a solution for any case related to kafka? Thanks a lot.
y
Hey @Andre Rodrigues. @Matt (pactflow.io / pact-js / pact-go)@Matt (pactflow.io / pact-js / pact-go)@Matt (pactflow.io / pact-js / pact-go) wrote a blog post last year about the use case and current progress of proto/avro/grpc support. https://pactflow.io/blog/the-case-for-contract-testing-protobufs-grpc-avro/ It's still high on the teams roadmap. See the open pactflow roadmap issue here https://github.com/pactflow/roadmap/issues/5 It depends on building the pact plug-in infrastructure which is tracked here. https://github.com/pactflow/roadmap/issues/33 Hope this helps a little bit provide some context to the background discussions and where we are now. Would love to get your feedback, thoughts, proposals, votes on the canny OSS feature board or if you'd like to help support. We always welcome any contributions :) Full disclosure - I'm super new to the world of avro/proto/grpc and Kafka so with regards to it applicable to any use case, I would always as a tester err on the side of caution and say it depends on your particular use case. I'd love to hear if this works, or doesn't for you ✌🏽
a
Ok, I got it. However, are there some prevision about the probable date to this plugins are availables?
m
You can see the columns that each feature is in, which should give you general ideas of timelines (Q1, Q2 etc.)
Protobufs is currently implemented as a plugin, however we need to add plugin support to all languages for that to be widely available
gRPC will be the next plugin
y
@uglyog
a
Thank you @Matt (pactflow.io / pact-js / pact-go), but for avro is the same case? I didnt find this issue on roadmap.
m
Avro is not curently being worked on. Once the plugin framework is fully up and runninsg across the ecosystem, we may create an Avro plugin (or somebody else could)
Avro should be pretty easy, I would have thought
a
hmmm, ok. Thanks.. I checked this thread: https://github.com/pact-foundation/pact-jvm/issues/603 I think that is the same case.
m
Yes. For clarity, we are creating a general plugin framework and rolling that out across the Pact ecosystem
This will enable anyone (including Pact maintainers) to create new plugins - such as gRPC, protobufs, Avro or <some new thing> support.
I’m assuming you’re a JVM user, you could potentially look at the protobufs plugin and replicate it for Avro
The gRPC plugin will be coming to JVM relatively soon. Do you need to interop with other languages, or is it all JVM for now?
a
Hey @Matt (pactflow.io / pact-js / pact-go), thanks for your response. We are thinking about that yet... However, our main stack is .Net. Probably Im on a thread in wrong channel rsrs 😕
This plugin won't be agnostic for any language?
m
the plugin is technology agnostic
write once and execute anywhere, but the main thing is that the plugin framework needs to be added to .NET
a
hmmm, right.
Hello @Matt (pactflow.io / pact-js / pact-go), how are you? Buddy, do you know if is there some advance with the support to AVRO? Thanks a lot 🙂
m
Hi Andre, no to my knowledge there is no AVRO support yet
if you wanted to write a plugin as per above, that’s an option or try something like https://medium.com/@ivangsa/consumer-driven-contract-testing-for-grpc-pact-io-d60155d21c4c
a
Ok, thanks 😉
a
@Matt (pactflow.io / pact-js / pact-go) can we create a channel for avro? i.e. #pact-avro, too see if it gets any traction, I have started talks where I work to start an open source project for the avro plugin
m
yes - done!