sivaganesh sivakumar sivaganesh sivakumar - 3 years ago 101
Java Question

How to implement contract testing when kafka is involved in microservice architecture?

I am currently working on a project where we have kafka implementation in micro service architecture. Were you successful in creating contract test cases for mS to kafka topic interaction please using pact-jvm ?

My implementation is microservice1 publishes a message to a REST Client which in turn posts the message to Kafka Topic. microservice2 uses GET method to retrieve messages from the Kafka Topic.

Answer Source

Pact-JVM supports Message Pacts, which encapsulate a message that is consumed (one way) over some mechanism, normally a message queue. The idea is to test the consumer code can consume the message via a consumer test, and then verify that the provider generates an appropriate message. The actual message queue is not used in the test.

Contract over a message queue

This was originally developed to apply contract tests for micro-services communicating over a Kafka message queue.

The tests are done in two parts, just like Request-Response Pact tests, except the Consumer reads the message during the consumer pact test and if successful a pact file is written. Then the provider code is called to generate a message, and that is compared to what is in the pact file.

enter image description here

The relevant sections of the Pact-JVM docs are:

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download