# serukalinin/v1tgb architecture

> Architecture diagram of the GitHub repository serukalinin/v1tgb, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/serukalinin/v1tgb
- Repository: https://github.com/serukalinin/v1tgb

## Overview

This is a Java trading-bot application: market candles feed strategy signals, signals are evaluated for risk and converted into orders, and execution interacts with an exchange before state and events are recorded. Risk reconciliation, recovery, outbox processing, market-data access, and user-facing integrations are distinct supporting capabilities in the tree. The graph reflects documented and indexed relationships; several subsystems are represented by their exact enclosing directories because their source was not sampled, so uncertain links are omitted or dashed.

Main entry points: [`src/main/java/com/tradingbot/application/service/order/OrderApplicationService.java`](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/order/OrderApplicationService.java) (Order application), [`src/main/java/com/tradingbot/application/service/execution/OrderExecutionHandler.java`](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/execution/OrderExecutionHandler.java) (Order execution), [`src/main/java/com/tradingbot/application/market/MarketDataService.java`](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/market/MarketDataService.java) (Market data service), [`src/main/java/com/tradingbot/domain/model/Order.java`](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/model/Order.java) (Order model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_market_strategy["Market and strategy"]
  node_market["Market data service"]
  node_market_cache["Market cache"]
  node_binance_market["Binance market client"]
  node_candle_event["Closed candle event"]
  node_strategy["Strategy engine"]
  node_signal["Signal event<br/>[SignalEvent.java]"]
  node_signal_router["Signal routing<br/>[SignalRouter.java]"]
end

subgraph group_risk["Risk management"]
  node_risk_engine["Risk engine<br/>[RiskEngine.java]"]
  node_risk_service["Risk service<br/>[RiskService.java]"]
  node_risk_state["Risk state<br/>[RiskState.java]"]
  node_reconciliation["Risk reconciliation"]
end

subgraph group_orders["Orders and execution"]
  node_order_app["Order application"]
  node_order["Order model<br/>[Order.java]"]
  node_execution_handler["Order execution"]
  node_execution_result["Execution result"]
  node_binance_execution["Binance execution"]
  node_position_rebuild["Position rebuild"]
end

subgraph group_events_state["Events and state"]
  node_outbox["Outbox service<br/>[OutboxService.java]"]
  node_outbox_dispatch["Outbox processing"]
  node_persistence[("Persistence adapters")]
end

subgraph group_interfaces["Interfaces and operations"]
  node_scheduler["Market scheduler"]
  node_bootstrap["System bootstrap"]
  node_telegram["Telegram bot"]
  node_monitoring["SaaS monitoring"]
end

node_user(("Trading user"))
node_exchange(("Binance exchange"))

node_market -->|"uses cache"| node_market_cache
node_market -.->|"fetches data"| node_binance_market
node_market -.->|"emits candle"| node_candle_event
node_candle_event -.->|"triggers strategy"| node_strategy
node_strategy -->|"creates signal"| node_signal
node_signal -.->|"routes signal"| node_signal_router
node_signal_router -.->|"submits signal"| node_order_app
node_order_app -->|"evaluates risk"| node_risk_engine
node_risk_engine -->|"delegates risk"| node_risk_service
node_risk_service -->|"updates state"| node_risk_state
node_reconciliation -->|"reconciles risk"| node_risk_engine
node_order_app -->|"creates order"| node_order
node_order -.->|"applies transitions"| node_execution_result
node_order -.->|"executes order"| node_execution_handler
node_execution_handler -.->|"calls exchange"| node_binance_execution
node_binance_execution -.->|"places orders"| node_exchange
node_execution_handler -.->|"receives result"| node_execution_result
node_execution_handler -.->|"publishes events"| node_outbox
node_order_app -->|"publishes events"| node_outbox
node_outbox -->|"writes events"| node_persistence
node_outbox_dispatch -.->|"reads events"| node_persistence
node_reconciliation -->|"rebuilds positions"| node_position_rebuild
node_bootstrap -->|"coordinates recovery"| node_reconciliation
node_user -.->|"sends commands"| node_telegram
node_telegram -.->|"submits orders"| node_order_app
node_user -.->|"views status"| node_monitoring
node_scheduler -.->|"requests updates"| node_market

click node_scheduler "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/interfaces/scheduler/MarketScheduler.java"
click node_market "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/market/MarketDataService.java"
click node_market_cache "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/market/MarketDataCache.java"
click node_binance_market "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/client/binance/BinanceMarketDataClient.java"
click node_candle_event "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/event/NewClosedCandleEvent.java"
click node_strategy "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/strategy/TestStrategyEngine.java"
click node_signal "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/event/SignalEvent.java"
click node_signal_router "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/strategy/SignalRouter.java"
click node_risk_engine "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/risk/RiskEngine.java"
click node_risk_service "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/risk/RiskService.java"
click node_risk_state "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/risk/RiskState.java"
click node_reconciliation "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/risk/ReconciliationService.java"
click node_order_app "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/order/OrderApplicationService.java"
click node_order "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/model/Order.java"
click node_execution_handler "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/execution/OrderExecutionHandler.java"
click node_execution_result "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/model/ExecutionResult.java"
click node_binance_execution "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/execution/binance/BinanceExecutionEngine.java"
click node_position_rebuild "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/execution/PositionRebuildService.java"
click node_outbox "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/outbox/OutboxService.java"
click node_outbox_dispatch "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/outbox/OutboxProcessor.java"
click node_persistence "https://github.com/serukalinin/v1tgb/tree/main/src/main/java/com/tradingbot/infrastructure/persistence/adapter"
click node_bootstrap "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/bootstrap/SystemStateManager.java"
click node_telegram "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/telegram/TradingTelegramBot.java"
click node_monitoring "https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/interfaces/web/SaasMonitoringController.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_market,node_market_cache,node_binance_market,node_candle_event,node_strategy,node_signal,node_signal_router,node_user toneBlue
class node_risk_engine,node_risk_service,node_risk_state,node_reconciliation toneAmber
class node_order_app,node_order,node_execution_handler,node_execution_result,node_binance_execution,node_position_rebuild toneMint
class node_outbox,node_outbox_dispatch,node_persistence toneRose
class node_scheduler,node_bootstrap,node_telegram,node_monitoring,node_exchange toneIndigo
```

## Components

### Market and strategy

- [Market data service](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/market/MarketDataService.java): `src/main/java/com/tradingbot/application/market/MarketDataService.java`
- [Market cache](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/market/MarketDataCache.java): `src/main/java/com/tradingbot/application/market/MarketDataCache.java`
- [Binance market client](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/client/binance/BinanceMarketDataClient.java): `src/main/java/com/tradingbot/infrastructure/client/binance/BinanceMarketDataClient.java`
- [Closed candle event](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/event/NewClosedCandleEvent.java): `src/main/java/com/tradingbot/application/event/NewClosedCandleEvent.java`
- [Strategy engine](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/strategy/TestStrategyEngine.java): `src/main/java/com/tradingbot/application/strategy/TestStrategyEngine.java`
- [Signal event](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/event/SignalEvent.java): `src/main/java/com/tradingbot/domain/event/SignalEvent.java`
- [Signal routing](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/strategy/SignalRouter.java): `src/main/java/com/tradingbot/application/service/strategy/SignalRouter.java`

### Risk management

- [Risk engine](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/risk/RiskEngine.java): `src/main/java/com/tradingbot/application/risk/RiskEngine.java`
- [Risk service](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/risk/RiskService.java): `src/main/java/com/tradingbot/domain/risk/RiskService.java`
- [Risk state](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/risk/RiskState.java): `src/main/java/com/tradingbot/domain/risk/RiskState.java`
- [Risk reconciliation](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/risk/ReconciliationService.java): `src/main/java/com/tradingbot/application/service/risk/ReconciliationService.java`

### Orders and execution

- [Order application](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/order/OrderApplicationService.java): `src/main/java/com/tradingbot/application/service/order/OrderApplicationService.java`
- [Order model](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/model/Order.java): `src/main/java/com/tradingbot/domain/model/Order.java`
- [Order execution](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/execution/OrderExecutionHandler.java): `src/main/java/com/tradingbot/application/service/execution/OrderExecutionHandler.java`
- [Execution result](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/domain/model/ExecutionResult.java): `src/main/java/com/tradingbot/domain/model/ExecutionResult.java`
- [Binance execution](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/execution/binance/BinanceExecutionEngine.java): `src/main/java/com/tradingbot/infrastructure/execution/binance/BinanceExecutionEngine.java`
- [Position rebuild](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/service/execution/PositionRebuildService.java): `src/main/java/com/tradingbot/application/service/execution/PositionRebuildService.java`

### Events and state

- [Outbox service](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/outbox/OutboxService.java): `src/main/java/com/tradingbot/infrastructure/outbox/OutboxService.java`
- [Outbox processing](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/outbox/OutboxProcessor.java): `src/main/java/com/tradingbot/infrastructure/outbox/OutboxProcessor.java`
- [Persistence adapters](https://github.com/serukalinin/v1tgb/tree/main/src/main/java/com/tradingbot/infrastructure/persistence/adapter): `src/main/java/com/tradingbot/infrastructure/persistence/adapter`

### Interfaces and operations

- [Market scheduler](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/interfaces/scheduler/MarketScheduler.java): `src/main/java/com/tradingbot/interfaces/scheduler/MarketScheduler.java`
- [System bootstrap](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/application/bootstrap/SystemStateManager.java): `src/main/java/com/tradingbot/application/bootstrap/SystemStateManager.java`
- [Telegram bot](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/infrastructure/telegram/TradingTelegramBot.java): `src/main/java/com/tradingbot/infrastructure/telegram/TradingTelegramBot.java`
- [SaaS monitoring](https://github.com/serukalinin/v1tgb/blob/main/src/main/java/com/tradingbot/interfaces/web/SaasMonitoringController.java): `src/main/java/com/tradingbot/interfaces/web/SaasMonitoringController.java`

### Other components

- **Trading user**
- **Binance exchange**

## Connections

- Market data service → Market cache: uses cache (evidence: `src/main/java/com/tradingbot/application/market/MarketDataService.java`)
- Market data service → Binance market client: fetches data (evidence: `src/main/java/com/tradingbot/application/market/MarketDataService.java`)
- Market data service → Closed candle event: emits candle (evidence: `src/main/java/com/tradingbot/application/market/MarketDataService.java`)
- Closed candle event → Strategy engine: triggers strategy (evidence: `src/main/java/com/tradingbot/application/strategy/TestStrategyEngine.java`)
- Strategy engine → Signal event: creates signal (evidence: `src/main/java/com/tradingbot/application/strategy/TestStrategyEngine.java`)
- Signal event → Signal routing: routes signal
- Signal routing → Order application: submits signal
- Order application → Risk engine: evaluates risk (evidence: `src/main/java/com/tradingbot/application/service/order/OrderApplicationService.java`)
- Risk engine → Risk service: delegates risk (evidence: `src/main/java/com/tradingbot/application/risk/RiskEngine.java`)
- Risk service → Risk state: updates state (evidence: `src/main/java/com/tradingbot/domain/risk/RiskService.java`)
- Risk reconciliation → Risk engine: reconciles risk (evidence: `src/main/java/com/tradingbot/application/service/risk/ReconciliationService.java`)
- Order application → Order model: creates order (evidence: `src/main/java/com/tradingbot/application/service/order/OrderApplicationService.java`)
- Order model → Execution result: applies transitions
- Order model → Order execution: executes order
- Order execution → Binance execution: calls exchange
- Binance execution → Binance exchange: places orders
- Order execution → Execution result: receives result
- Order execution → Outbox service: publishes events
- Order application → Outbox service: publishes events (evidence: `src/main/java/com/tradingbot/application/service/order/OrderApplicationService.java`)
- Outbox service → Persistence adapters: writes events (evidence: `src/main/java/com/tradingbot/infrastructure/outbox/OutboxService.java`)
- Outbox processing → Persistence adapters: reads events
- Risk reconciliation → Position rebuild: rebuilds positions (evidence: `src/main/java/com/tradingbot/application/service/risk/ReconciliationService.java`)
- System bootstrap → Risk reconciliation: coordinates recovery (evidence: `src/main/java/com/tradingbot/application/service/risk/ReconciliationService.java`)
- Trading user → Telegram bot: sends commands
- Telegram bot → Order application: submits orders
- Trading user → SaaS monitoring: views status
- Market scheduler → Market data service: requests updates
