sivaganesh sivakumar
sivaganesh sivakumar

Reputation: 369

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.

Upvotes: 15

Views: 9633

Answers (1)

Ronald Holshausen
Ronald Holshausen

Reputation: 931

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:

Upvotes: 22

Related Questions