Files
rafaeldpsilva a7a18e6295 first commit
2025-09-09 13:46:42 +01:00

97 lines
2.9 KiB
Markdown

# Energy Management Microservices Architecture
This directory contains independent microservices based on the tiocps/iot-building-monitoring system, redesigned for modular deployment and scalability.
## Services Overview
### 1. **Token Service** (`token-service/`)
- JWT token generation, validation, and management
- Resource-based access control
- Authentication service for all other services
- **Port**: 8001
### 2. **Battery Management Service** (`battery-service/`)
- Battery monitoring, charging, and discharging
- Energy storage optimization
- Battery health and state tracking
- **Port**: 8002
### 3. **Demand Response Service** (`demand-response-service/`)
- Grid interaction and demand response events
- Load shifting coordination
- Event scheduling and management
- **Port**: 8003
### 4. **P2P Energy Trading Service** (`p2p-trading-service/`)
- Peer-to-peer energy marketplace
- Transaction management and pricing
- Energy trading optimization
- **Port**: 8004
### 5. **Forecasting Service** (`forecasting-service/`)
- ML-based consumption and generation forecasting
- Historical data analysis
- Predictive analytics for optimization
- **Port**: 8005
### 6. **IoT Control Service** (`iot-control-service/`)
- IoT device management and control
- Device instructions and automation
- Real-time device monitoring
- **Port**: 8006
### 7. **API Gateway** (`api-gateway/`)
- Central entry point for all services
- Request routing and load balancing
- Authentication and rate limiting
- **Port**: 8000
## Architecture Principles
- **Independent Deployment**: Each service can be deployed, scaled, and updated independently
- **Database per Service**: Each microservice has its own database/collection
- **Event-Driven Communication**: Services communicate via Redis pub/sub for real-time events
- **REST APIs**: Synchronous communication between services via REST
- **Containerized**: Each service runs in its own Docker container
## Communication Patterns
1. **API Gateway → Services**: HTTP REST calls
2. **Inter-Service Communication**: HTTP REST + Redis pub/sub for events
3. **Real-time Updates**: Redis channels for WebSocket broadcasting
4. **Data Persistence**: MongoDB with service-specific collections
## Deployment
Each service includes:
- `main.py` - FastAPI application
- `models.py` - Pydantic models
- `database.py` - Database connection
- `requirements.txt` - Dependencies
- `Dockerfile` - Container configuration
- `docker-compose.yml` - Service orchestration
## Getting Started
```bash
# Start all services
docker-compose up -d
# Start individual service
cd token-service && python main.py
# API Gateway (main entry point)
curl http://localhost:8000/health
```
## Service Dependencies
```
API Gateway (8000)
├── Token Service (8001) - Authentication
├── Battery Service (8002)
├── Demand Response Service (8003)
├── P2P Trading Service (8004)
├── Forecasting Service (8005)
└── IoT Control Service (8006)
```