How rautaruukkipalich/virtual-orchestrator works
OrderApp is an order-processing backend with authentication, supplier-offer sourcing and booking, and asynchronous order-event handling. The visible HTTP workflow accepts an authenticated order request, delegates through a use case, and exposes order listing and status; the bill endpoint currently returns not found. The tree names further order-processing stages, but most use-case and consumer implementations were not sampled, so their internal calls are not asserted. The sampled outbox processor polls stored messages and dispatches them through a type-selected producer.
Main entry points: HttpOrderController.java Order Controller · AuthService.java Auth Service · SupplierService.java Supplier Service · OutboxProcessorService.java Outbox Processor
Components 28
HTTP API
- Auth Controller
src/main/java/org/orderapp/controllers/http/HttpAuthController.java - Order Controller
src/main/java/org/orderapp/controllers/http/HttpOrderController.java
Order Workflow
- Create Order
src/main/java/org/orderapp/usecases/CreateOrderUseCase.java - User Orders
src/main/java/org/orderapp/usecases/UserOrdersUseCase.java - Order Status
src/main/java/org/orderapp/usecases/OrderStatusUseCase.java - Order Bill
src/main/java/org/orderapp/usecases/OrderBillUseCase.java - Order Service
src/main/java/org/orderapp/services/OrderService.java - Order Repository
src/main/java/org/orderapp/repositories/OrderRepository.java - Process Order
src/main/java/org/orderapp/usecases/ProcessOrderUseCase.java
Supplier Offers
- Fetch Offers
src/main/java/org/orderapp/usecases/FetchOffersUseCase.java - Book Best Offer
src/main/java/org/orderapp/usecases/BookBestOfferUseCase.java - Supplier Service
src/main/java/org/orderapp/services/SupplierService.java - Adapter Factory
src/main/java/org/orderapp/adapters/SupplierAdapterFactory.java - Supplier Adapters
src/main/java/org/orderapp/adapters/suppliers/SupplierAAdapter.java - Offer Service
src/main/java/org/orderapp/services/OfferService.java - Offer Repository
src/main/java/org/orderapp/repositories/OfferRepository.java
Async Messaging
- Order Event Consumer
src/main/java/org/orderapp/processors/OrderEventConsumer.java - Outbox Service
src/main/java/org/orderapp/services/OutboxService.java - Outbox Processor
src/main/java/org/orderapp/processors/OutboxProcessorService.java - Outbox Repository
src/main/java/org/orderapp/repositories/OutboxRepository.java - Queue Factory
src/main/java/org/orderapp/factory/OutboxTypeQueueFactory.java - Topic Producer
src/main/java/org/orderapp/factory/TopicProducer.java
Authentication
- Auth Service
src/main/java/org/orderapp/services/AuthService.java - User Service
src/main/java/org/orderapp/services/UserService.java - JWT Service
src/main/java/org/orderapp/core/services/JwtService.java - User Repository
src/main/java/org/orderapp/repositories/UserRepository.java
Other components
- API Client
- Message Broker
Connections 17
- API Client → Auth Controller: sends credentials
- API Client → Order Controller: requests orders
- Auth Controller → Auth Service: calls
- Auth Service → User Service: looks up or creates user
- Auth Service → JWT Service: generates tokens
- Order Controller → Create Order: creates order
- Order Controller → User Orders: lists orders
- Order Controller → Order Status: gets status
- Order Controller → Order Bill: requests bill
- Order Service → Order Repository: reads and writes
- Supplier Service → Adapter Factory: gets adapters
- Supplier Service → Offer Service: creates offer
- Offer Service → Offer Repository: writes offer
- Outbox Processor → Outbox Repository: loads and saves
- Outbox Processor → Queue Factory: selects producer
- Queue Factory → Topic Producer: provides producer
- Topic Producer → Message Broker: publishes message