The dynamic-security-analysis-server is a microservice of the GridSuite platform dedicated to dynamic security analysis computation.
Dynamic security analysis extends a dynamic simulation (time-domain, dynamic-model based) by evaluating the impact of a set of contingencies on top of a previously computed dynamic simulation output state. It relies on the dynamic-simulation-server result (output state, dynamic model, parameters) as its starting point, then simulates each contingency using a dynamic security analysis provider (Dynawo).
It provides the following capabilities:
- Run dynamic security analysis computations starting from an existing dynamic simulation result, using configurable providers (Dynawo).
- Manage parameter sets (create, read, update, duplicate, delete) with provider-aware parameter values.
- Track computation status and invalidate/stop running computations.
- Delete results individually or in bulk.
- Download debug files produced by the underlying dynamic security analysis provider.
- Run computations asynchronously (via a RabbitMQ message queue).
- Spring Boot (Web, Data JPA, Actuator, Cloud Stream)
- PostgreSQL
- Liquibase
- RabbitMQ via Spring Cloud Stream
- API documentation: OpenAPI / Swagger (
springdoc) - Micrometer / Prometheus
- gridsuite-computation
- powsybl-dynawo (Dynawo dynamic security analysis provider)
Build Docker image
mvn install -DskipTests -Dpowsybl.docker.installPlease read liquibase usage for instructions to automatically generate changesets. After you generated a changeset do not forget to add it to git and in src/main/resources/db/changelog/db.changelog-master.yml.
┌───────────────────────────────────┐
│ dynamic-security-analysis-server │──► network-store-server (read network topology)
│ │──► actions-server (resolve contingency lists)
│ │──► dynamic-simulation-server (fetch output state, dynamic model and parameters)
│ │──► report-server (post computation functional logs)
└───────────────────────────────────┘
▲ ▼
RabbitMQ (dsa.run / dsa.cancel / dsa.result / dsa.stopped / dsa.cancelfailed / dsa.debug)
- The controller publishes a message on the
dsa.runqueue. - Parallel consumers (
consumeRun1,consumeRun2) process messages concurrently for load balancing. - The computation result is published on
dsa.result. - Cancellation of a running computation goes through the
dsa.cancelqueue. - Debug information (when debug mode is enabled) is published on
dsa.debug. - Dead-letter queues (
dsa.run.dlx) and quorum queues ensure reliability.
Dynamic security analysis parameters include:
- Provider selection (Dynawo).
- Provider-specific parameter values, exposed and persisted per parameter set.
Parameter sets can be created, duplicated, updated, retrieved and deleted through the REST API.
The following capabilities are provided by the gridsuite-computation shared library:
- asynchronous run/cancel pipeline,
- transactional result notifications,
- report integration,
- Micrometer observability.
The dynamic-security-analysis-server itself focuses on dynamic-security-analysis-specific logic (parameters, contingency resolution, dynamic simulation context retrieval, provider integration) and delegates the common computation infrastructure to this lib.
You can find information on Dynawo here.