Test Management for Event Brokers – Could you? You should! But how?

Test Management Event Driven Architecture

I recently got in contact with event-driven architecture (EDA) or message-driven architecture and of course, wondered “What’s the difference?”. I did like the definition found on eventstore.com stating the difference as follows:

The main difference between event-driven and message-driven systems is that a message is sent to a pre-determined location, whereas an event is broadcast to any potential listeners. Messages are stored in a queue and are then processed (and usually deleted) once, by a single, predefined consumer.

A company of a friend (you know this start, don’t you?) had put in place a central platform which they call the “Messaging System” and they are starting looking into the product from Solace called PubSub+. The product is looking good and it seems the team is getting along well with it. The friend (yes, yes) did approach me with a different question – Quality Management.

He wonders, how the team can implement integration testing with this platform or in general, with event-driven architectures. Honestly… I had no plan! But an interesting question was posed which led me to also research a bit and google around for possible solutions on Integration Testing in this scenario. Test Managemen for Event Brokers? How to do this?

Contract testing

Option 1 I found is contract testing:

Contract testing was born to address this issue. By setting up contract testing, the consumer service and the provider service can check the integration between them continuously for every time they update the code. This allows these two teams to work independently and avoid surprises on integration day.

https://solace.com/blog/how-to-use-pact-to-contract-test-your-event-driven-system/

What else?

Honestly, the rest I found was like “Develop it yourself, get a grab of GO or C#, and try it”.

Wonder if you have a better solution.

Leave a Reply

Your email address will not be published. Required fields are marked *