Skip to content

Latest commit

 

History

History
21 lines (15 loc) · 1.26 KB

architecture.md

File metadata and controls

21 lines (15 loc) · 1.26 KB

Architecture

OpenDC consists of four components: a Kotlin simulator, a SQL database, a Quarkus-based API, and a React.js frontend.

OpenDC Component Diagram

On the frontend, users can construct a topology by specifying a datacenter's rooms, racks and machines, and create scenarios to see how a workload trace runs on that topology. The frontend communicates with the web server via a REST API over HTTP.

The (Swagger/OpenAPI compliant) API spec specifies what requests the frontend can make to the web server. To view this specification, go to the Swagger Editor and paste in our API spec.

The web server receives API requests and processes them in the database. When the frontend requests to run a new scenario, the web server adds it to the scenarios collection in the database and sets its state as PENDING.

The simulator monitors the database for PENDING scenarios, and simulates them as they are submitted. The results of the simulations are processed and aggregated in memory. Afterwards, the aggregated summary is written to the database, which the frontend can then again retrieve via the web server.