How aryaraj76438/order-execution-engine-application works
This Spring Boot application accepts market orders through a REST API or its web interface, persists them, and queues them for asynchronous processing. The execution service obtains simulated Raydium and Meteora quotes, selects the better output, simulates a swap, persists lifecycle changes, and publishes status updates over WebSockets. Users can also query order history, individual status, and queue statistics. The README documents retries and slippage protection; sampled source confirms retries, but does not show slippage enforcement. The graph reflects the sampled implementation and documented capabilities without assuming unsampled wiring.
Main entry points: OrderExecutionService.java Execution service · OrderController.java Order API · WebController.java Web controller · WebSocketNotificationService.java Notification service
Components 17
User entry points
- Order API
src/main/java/com/dex/orderengine/controller/OrderController.java - Web controller
src/main/java/com/dex/orderengine/controller/WebController.java - Order page
src/main/resources/templates/index.html - Order request
src/main/java/com/dex/orderengine/dto/OrderRequest.java - Order response
src/main/java/com/dex/orderengine/dto/OrderResponse.java - API error handling
src/main/java/com/dex/orderengine/controller/GlobalExceptionHandler.java
Order execution
- Execution service
src/main/java/com/dex/orderengine/service/OrderExecutionService.java - Order lifecycle
src/main/java/com/dex/orderengine/model/Order.java
DEX routing
- Mock DEX router
src/main/java/com/dex/orderengine/service/MockDexRoutingService.java
Persistence and queue
- Order queue
src/main/java/com/dex/orderengine/service/OrderQueueService.java - Order repository
src/main/java/com/dex/orderengine/repository/OrderRepository.java
Live updates
- Notification service
src/main/java/com/dex/orderengine/service/WebSocketNotificationService.java - WebSocket setup
src/main/java/com/dex/orderengine/config/WebSocketConfig.java
Other components
- Trader
- Web browser
- PostgreSQL
- WebSocket client
Connections 20
- Trader → Order API: submits orders
- Order API → Order request: validates input
- Order API → Execution service: submits or queries
- Execution service → Order response: maps results
- Execution service → Order repository: saves and reads
- Order repository → PostgreSQL: persists orders
- Execution service → Order queue: enqueues and polls
- Order queue → Execution service: returns order ID
- Execution service → Mock DEX router: quotes and executes
- Execution service → Notification service: publishes lifecycle
- Web controller → Execution service: loads recent orders
- Web controller → Order queue: reads queue stats
- Web browser → Web controller: requests page
- Web controller → Order page: renders template
- Order page → Web browser: displays orders
- Web browser → WebSocket client: subscribes
- WebSocket client → WebSocket setup: connects
- Notification service → WebSocket setup: sends updates
- Notification service → WebSocket client: streams statuses
- Order API → API error handling: delegates API errors