A simple example of a stream/message oriented architecture. It includes the following microservices
- contentpumper: generates dummy messages and sends it to rabbitmq
- contentconsumer: consumes rabbitmq messages and logs it
- lookup: consumes the messages and saves it into a relational database. have a controller to allow by-id lookups
- search: consumes the messages and saves it into a mongodb database. have a controller to allow by-body searches
- registry: eureka server instance
- proxy: zull proxy instance
Every different service has a different group on rabbitmq-stream config. So, if you spin more than one instance, no duplicate messages will be processed by the same service group.