How taranjotwani/kafka-test works
This is a Kafka-based order-processing microservice demo. A client submits or generates orders through the order-service API; payment and stock services independently reserve funds and inventory, then publish outcomes that the order service uses to confirm, reject, or roll back the order. The services share an Order event model and persist their own customer and product state. The README describes the event-driven architecture; order-service stream wiring is not excerpted, so links involving its coordination are marked unverified.
Main entry points: OrderController.java Order API · OrderApp.java Order Streams · service/OrderManageService.java Funds Reservation · service/OrderManageService.java Inventory Reservation
Components 16
Order Processing
- Order API
order-service/src/main/java/pl/piomin/order/controller/OrderController.java - Order Generator
order-service/src/main/java/pl/piomin/order/service/OrderGeneratorService.java - Order Coordination
order-service/src/main/java/pl/piomin/order/service/OrderManageService.java - Order Streams
order-service/src/main/java/pl/piomin/order/OrderApp.java - Order Read Store
order-service/src/main/java/pl/piomin/order/controller/OrderController.java
Payment Service
- Payment Listener
payment-service/src/main/java/pl/piomin/payment/PaymentApp.java - Funds Reservation
payment-service/src/main/java/pl/piomin/payment/service/OrderManageService.java - Customer Repository
payment-service/src/main/java/pl/piomin/payment/repository/CustomerRepository.java - Customer Balance
payment-service/src/main/java/pl/piomin/payment/domain/Customer.java
Stock Service
- Stock Listener
stock-service/src/main/java/pl/piomin/stock/StockApp.java - Inventory Reservation
stock-service/src/main/java/pl/piomin/stock/service/OrderManageService.java - Product Repository
stock-service/src/main/java/pl/piomin/stock/repository/ProductRepository.java - Product Inventory
stock-service/src/main/java/pl/piomin/stock/domain/Product.java
Events and Messaging
- Order Event
base-domain/src/main/java/pl/piomin/base/domain/Order.java - Kafka Broker
Other components
- API Client
Connections 18
- API Client → Order API: submits orders
readme.md - Order API → Order Generator: starts generation
order-service/src/main/java/pl/piomin/order/controller/OrderController.java - Order API → Kafka Broker: publishes orders
order-service/src/main/java/pl/piomin/order/controller/OrderController.java - Order Generator → Kafka Broker: publishes orders
order-service/src/main/java/pl/piomin/order/service/OrderGeneratorService.java - Order API → Order Read Store: queries orders
order-service/src/main/java/pl/piomin/order/controller/OrderController.java - Kafka Broker → Payment Listener: delivers events
payment-service/src/main/java/pl/piomin/payment/PaymentApp.java - Payment Listener → Funds Reservation: dispatches events
payment-service/src/main/java/pl/piomin/payment/PaymentApp.java - Funds Reservation → Customer Repository: reads and saves
payment-service/src/main/java/pl/piomin/payment/service/OrderManageService.java - Customer Repository → Customer Balance: manages entities
payment-service/src/main/java/pl/piomin/payment/repository/CustomerRepository.java - Funds Reservation → Kafka Broker: publishes outcomes
payment-service/src/main/java/pl/piomin/payment/service/OrderManageService.java - Kafka Broker → Stock Listener: delivers events
stock-service/src/main/java/pl/piomin/stock/StockApp.java - Stock Listener → Inventory Reservation: dispatches events
stock-service/src/main/java/pl/piomin/stock/StockApp.java - Inventory Reservation → Product Repository: reads and saves
stock-service/src/main/java/pl/piomin/stock/service/OrderManageService.java - Product Repository → Product Inventory: manages entities
stock-service/src/main/java/pl/piomin/stock/repository/ProductRepository.java - Inventory Reservation → Kafka Broker: publishes outcomes
stock-service/src/main/java/pl/piomin/stock/service/OrderManageService.java - Order Streams → Order Coordination: uses coordination
order-service/src/main/java/pl/piomin/order/OrderApp.java - Kafka Broker → Order Streams: routes outcomes
- Order Streams → Order Read Store: maintains read state
order-service/src/main/java/pl/piomin/order/OrderApp.java