We are doing a pactflow POC, and I’d like to get a...
# pactflow-ama
l
We are doing a pactflow POC, and I’d like to get a sanity check on what we’re attempting… we’d like to pilot bidirectional contract testing, and our services communicate via async messaging over (pulsar) queues.
Is this reasonable, and can you point me to any demos, messaging tutorials etc? Many Thanks!
m
Hi Lori, we don't yet support BDCT for messaging/ AsyncAPI, only RESTful APIs that can be described by OAS It's on the roadmap for this year https://github.com/pactflow/roadmap/projects/1
What protocol are you sending messages with on pulsar? E.g. Json, avro, protobufs
l
Hi Matt, thanks for a quick response, (even if it wasn’t what I was hoping to hear). Bummer! 😱 It looks like BDCT async is queued up for 4th quarter this year? We’re sending json over pulsar. Thanks!
👍 1
m
Thanks for letting me know! I’ll pop down your use case against the feature. In the mean time, you could still do regular Pact testing with Pulsar via our messaging support. What language do you use?
l
Good Morning, Matt. We’ve got one java system (the consumer - the one reading and responding to messages sent by the other) and a node/nest system is the producer. These are the two components we’re piloting. None of this is greenfield, and we do have oas specs, which are two of the reasons we were hoping to do BDCT.
If you can point me to anything that might be helpful with this architecture, I’d surely appreciate it. Thanks!
m
Interesting, how are you documenting Pulsar with OAS? Does pulsar support HTTP?
l
That’s a great question - we really aren’t, though we kept the document up to date. My understanding (and I’m a relative newbie on this project) is that the communication between the components was originally via http, not messaging. The switch came later. However, one of the components is still using the doc for codegen
m
ah ok
To my knowledge, you can’t specify a messaging application in OAS (that’s the purpose of AsyncAPI). So if it is documented in an OAS, it wouldn’t adequately describe it
at least, it would be hard for a tooling maker to make assumptions about how it was (ab)used in order to make decisions about correctness etc.
l
Good Morning (at least over there - are you in Australia?) I’m guessing my best code examples for CDCT/messaging are going to be the java_kafka ones, is that correct?
1
💯 1
m
(Yes that’s right! Sorry I have been in meetings…)
Yes, if you use Java!
l
Thanks - we’ve got java on the consumer side and node on the producer side
👍 1