adding data-services
This commit is contained in:
parent
e3bfd05b90
commit
405b818c86
139 changed files with 55943 additions and 416 deletions
62
REFACTORING.md
Normal file
62
REFACTORING.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# Stock Bot Project Structure Refactoring
|
||||
|
||||
This document outlines the changes made to improve separation of concerns in the stock-bot project architecture.
|
||||
|
||||
## Directory Structure Changes
|
||||
|
||||
1. Created a dedicated `libs/` directory (replacing the previous `packages/` approach)
|
||||
2. Split monolithic type definitions into domain-specific modules
|
||||
3. Created specialized libraries for cross-cutting concerns
|
||||
|
||||
## New Libraries
|
||||
|
||||
### 1. `@stock-bot/shared-types`
|
||||
Domain-specific type definitions organized by functional area:
|
||||
- `market/` - Market data structures (OHLCV, OrderBook, etc.)
|
||||
- `trading/` - Trading types (Orders, Positions, etc.)
|
||||
- `strategy/` - Strategy and signal types
|
||||
- `events/` - Event definitions for the event bus
|
||||
- `api/` - Common API request/response types
|
||||
- `config/` - Configuration type definitions
|
||||
|
||||
### 2. `@stock-bot/event-bus`
|
||||
A Redis-based event bus implementation for inter-service communication:
|
||||
- Publish/subscribe pattern for asynchronous messaging
|
||||
- Support for typed events
|
||||
- Reliable message delivery
|
||||
|
||||
### 3. `@stock-bot/utils`
|
||||
Common utility functions shared across services:
|
||||
- `dateUtils` - Date/time helpers for market data
|
||||
- `financialUtils` - Financial calculations (Sharpe ratio, drawdown)
|
||||
- `logger` - Standardized logging service
|
||||
|
||||
### 4. `@stock-bot/api-client`
|
||||
Type-safe API clients for inter-service communication:
|
||||
- `BaseApiClient` - Common HTTP client functionality
|
||||
- Service-specific clients (BacktestClient, StrategyClient)
|
||||
|
||||
## Benefits of the New Architecture
|
||||
|
||||
1. **Better Separation of Concerns**
|
||||
- Each library has a clear, focused purpose
|
||||
- Domain types are logically grouped
|
||||
|
||||
2. **Improved Maintainability**
|
||||
- Smaller, focused modules
|
||||
- Clear dependencies between modules
|
||||
|
||||
3. **Type Safety**
|
||||
- Consistent types across the entire system
|
||||
- Better IDE autocompletion and error checking
|
||||
|
||||
4. **Reduced Duplication**
|
||||
- Shared utilities in a central location
|
||||
- Consistent implementation of common patterns
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Update service implementations to use the new libraries
|
||||
2. Migrate from the old packages directory to the new libs structure
|
||||
3. Implement domain-specific validations in each type module
|
||||
4. Add unit tests for each library
|
||||
Loading…
Add table
Add a link
Reference in a new issue