Introduction
The Orchestrator serves as the primary backend powering the Olympe platform. Its core responsibilities include data management, user authentication, and delivering data to clients. This server application is built using Java and using the reactive Vert.x toolkit. For data storage, it employs the Neo4j graph database, storing both user information and code as data in a graph.
Main responsibilities of Orchestrator
Authentication
- Authenticate users using the required protocols (oAuth2, SAML, SRP).
- Generate tokens for future auto-login once users are authenticated.
- Establish and manage user sessions through WebSocket connections.
Transaction Processing
- Verify user permissions for operation execution (authorization checks).
- Enable binary file creation and storage in the file system.
- Support large-scale data deletions by targeting root instances.
Data Backup and Import
- Export code as data, including binary files, as part of the archive.
- Import code as data patches with binary files seamlessly.
Administration Shell
- Provide an administrative command-line interface for database management.
- Facilitate database initialization with the Olympe data model.
Data Provisioning
- Retrieve and deliver code as data to the clients.
- Provide selective data access tailored to client needs and notify about future changes via subscription mechanisms.
Notifications
- Alert clients about changes to the requested code as data, mimicking the functionality of continuous queries.
Data Integrity and Validity
- Ensure that the Neo4j database maintains consistent and valid data.