Technical architecture
GridCapa is an open-source platform designed for capacity assessment in electricity networks. It is built around a modular, event-driven microservices architecture to support scalability, automation, and integration with industrial processes.
Modular Microservices Architecture
GridCapa is composed of multiple loosely-coupled services, each with a specific role:
data-bridge— monitors FTP inputtask-manager— orchestrates task lifecycleprocess-runner— performs computationrao-runner— solves optimization problemsgridcapa-app— user interface (HMI)gridcapa-export— handles result exports
Event-Driven Workflow Orchestration
- Communication between services is handled via RabbitMQ.
- Events (e.g. new file detected, task status change) trigger appropriate actions across the system.
Input/Output File Management
- Input files are uploaded to an FTP server and moved to MinIO object storage.
- Output files and logs are exported back to the FTP server for external use.
Task Lifecycle Management
Tasks go through several lifecycle stages:
READY– all inputs availablePENDING– waiting for a computation instanceRUNNING– actively computingSUCCESSorERROR– computation completed
Flexible Task Execution
Tasks can be launched:
- Automatically when all inputs are ready and config allows auto-start
- Manually via the user interface
Computation and Adaptation Layer
process-adapterformats task info and routes it to theprocess-runnerprocess-runner:- Preprocesses input data
- Runs iterative logic (e.g. dichotomy)
- Invokes
rao-runnerfor optimization - Writes results to storage
Real-Time Monitoring and Logging
- Logs are continuously collected and stored in the database
- UI updates in real time via WebSockets
- Optimization logs are filtered by
rao-logs-dispatcher
Output Handling and Export
gridcapa-exportcopies result files and logs from MinIO to FTP- Ensures availability of all outputs before completing the task