Root Causes Fixed:
1. BatchForecastResponse schema mismatch in forecasting service
- Changed 'batch_id' to 'id' (required field name)
- Changed 'products_processed' to 'total_products'
- Changed 'success' to 'status' with "completed" value
- Changed 'message' to 'error_message'
- Added all required fields: batch_name, completed_products, failed_products,
requested_at, completed_at, processing_time_ms, forecasts
- This was causing "11 validation errors for BatchForecastResponse"
which made the forecast service return None, triggering saga failure
2. Missing pandas dependency in orchestrator service
- Added pandas==2.2.2 and numpy==1.26.4 to requirements.txt
- Fixes "No module named 'pandas'" warning when loading AI enhancement
These issues prevented the orchestrator from completing Step 3 (generate_forecasts)
in the daily workflow, causing the entire saga to fail and compensate.
48 lines
863 B
Plaintext
48 lines
863 B
Plaintext
# Orchestrator Service Dependencies
|
|
# FastAPI and web framework
|
|
fastapi==0.119.0
|
|
uvicorn[standard]==0.32.1
|
|
pydantic==2.12.3
|
|
pydantic-settings==2.7.1
|
|
|
|
# Database (minimal - only for audit logs)
|
|
sqlalchemy==2.0.44
|
|
asyncpg==0.30.0
|
|
alembic==1.17.0
|
|
psycopg2-binary==2.9.10
|
|
|
|
# HTTP clients (for service orchestration)
|
|
httpx==0.28.1
|
|
|
|
# Data processing and ML support
|
|
pandas==2.2.2
|
|
numpy==1.26.4
|
|
|
|
# Redis for leader election
|
|
redis==6.4.0
|
|
|
|
# Message queuing
|
|
aio-pika==9.4.3
|
|
|
|
# Scheduling (APScheduler for cron-based scheduling)
|
|
APScheduler==3.10.4
|
|
|
|
# Logging and monitoring
|
|
structlog==25.4.0
|
|
prometheus-client==0.23.1
|
|
|
|
# Date and time utilities
|
|
python-dateutil==2.9.0.post0
|
|
pytz==2024.2
|
|
|
|
# Validation
|
|
email-validator==2.2.0
|
|
|
|
# Authentication and JWT
|
|
python-jose[cryptography]==3.3.0
|
|
|
|
# Development dependencies
|
|
python-multipart==0.0.6
|
|
pytest==8.3.4
|
|
pytest-asyncio==0.25.2
|