Problem

You just want to write logic for your event driven application, but the boilerplate messaging code keeps getting in the way and it's costing you time. Connecting your apps to messaging servers is cumbersome and you need to work with multiple messaging technologies in your organisation depending on which team you're working in.

Solution

Spring Cloud Stream takes care of the complicated boilerplate code for you, leaving you free to create nice clean business logic which anyone can maintain. Spring Cloud Stream seamlessly unifies many different messaging protocols behind one easy to use API and it smoothes away any subtle differences in approach or features (like partitioning or exchanges for example) so that you can concentrate on building event-driven solutions that "just work".

For the rest of this recipe see the website here.

Pre-requisites

These event driven applications are built on: Spring Boot, Spring Cloud Stream, Maven, and Java 8.

This server-side runs on Docker for Mac and includes: Kafka, Zookeeper, RabbitMQ, and KafDrop (image by by Obsidian Dynamics).