How bekmax/order-system works
This repository is a small Kafka-based order-processing system split across four Spring services. Its principal workflow generates orders, publishes them to Kafka, consumes and persists them, then publishes a processing status. A separate notification consumer and logging service are also present. The README is empty; links for unsampled listener/configuration behavior are limited to what the tree and sampled code establish.
Main entry points: OrderService.kt Order generator · OrderHandlerService.kt Order handler · KafkaProducerPort.kt Producer port · KafkaProducerService.kt Kafka producer
Components 17
Order generation
- Order generator
order-generator/src/main/kotlin/com/order/generator/infra/service/OrderService.kt - Order model
order-generator/src/main/kotlin/com/order/generator/domain/model/Order.kt - Producer port
order-generator/src/main/kotlin/com/order/generator/domain/port/KafkaProducerPort.kt - Kafka producer
order-generator/src/main/kotlin/com/order/generator/domain/service/KafkaProducerService.kt
Order processing
- Order consumer
order-handler/src/main/kotlin/com/handler/infra/kafka/OrderConsumerService.kt - Order handler
order-handler/src/main/kotlin/com/handler/domain/service/OrderHandlerService.kt - Handler port
order-handler/src/main/kotlin/com/handler/domain/port/OrderHandlerPort.kt - Repository port
order-handler/src/main/kotlin/com/handler/domain/port/OrderRepositoryPort.kt - Repository adapter
order-handler/src/main/kotlin/com/handler/infra/persistence/repository/OrderRepositoryAdapter.kt - Order database
Event consumers
- Notification listener
notification/src/main/kotlin/com/notification/infra/listener/KafkaEventListenerService.kt
Logging service
- Kafka log listener
logging/src/main/kotlin/com/logging/infra/listener/KafkaEventListener.kt - File writer port
logging/src/main/kotlin/com/logging/domain/port/LogToFileWriterServicePort.kt - File log writer
logging/src/main/kotlin/com/logging/domain/service/LogToFileWriterService.kt
Other components
- Application runtime
- Kafka broker
- Log file
Connections 16
- Application runtime → Order generator: starts
- Order generator → Order model: creates
- Order generator → Producer port: sends order
- Producer port → Kafka producer: implemented by
- Kafka producer → Kafka broker: publishes order
- Kafka broker → Order consumer: delivers order
- Order consumer → Handler port: handles order
- Handler port → Order handler: implemented by
- Order handler → Repository port: registers order
- Repository port → Repository adapter: implemented by
- Repository adapter → Order database: saves order
- Order handler → Kafka broker: publishes status
- Kafka broker → Notification listener: delivers notification
- Kafka broker → Kafka log listener: delivers event
- File writer port → File log writer: implemented by
- File log writer → Log file: appends text