This repo contains an event-driven demo application built with Quarkus, AMQ Streams (Kafka), and MongoDB. The application can run locally and in OpenShift (Kubernetes.)
The application consists of 4 microservices,:
- Web
- Core
- Kitchen
- Barista
2 projects containing depencies for the microservices,:
- Domain
- Test Utils
and a development utiltiy:
- JSON Service
There is an additional microservice used for testing: Customermock
This service hosts the web front end and is the initial entry point for all orders. Orders are sent to a Kafka topic, web-in, where they are picked up by the Core service.
This services listens to the web-updates topic and pushes updates to the web front end.
This service orchestrates order related events between event producers and consumers
The kitchen services consumes "OrderIn" events, applies the business logic for making the item, and produces, "OrderUp" events
The barista services consumes "OrderIn" events, applies the business logic for making the beverage, and produces, "OrderUp" events
The domain contain shared objects representing the current state of the system's ubiquitous language
The test utilities have utilities for spinning up MongoDB and Kafka containers for use in integration tests. It is not part of the production application
This service is a convenient way to view the JSON objects produced and consumed by the system. It is not part of the production application
Supporting scripts and documentation can be found in the support folder
See Working Locally
This was created in 2020 by Jeremy Davis