Core gRPC Services
The ARES architecture is decoupled into a set of specialized microservices that interact via high-performance gRPC (HTTP/2) interfaces. These services manage automation workflows, connect to physical equipment, handle analytical evaluations, and orchestrate real-time event streaming.
1. Core Workflow Orchestration: AresAutomation
The AresAutomation service is the main orchestrator for the entire autonomous loop. It controls the lifecycle of a CampaignTemplate from startup to closeout, manages multi-user project spaces, handles live runtime execution streams, and saves historical summaries.
- Campaign Management:
GetAllCampaigns,GetSingleCampaign,AddCampaign,UpdateCampaign,RemoveCampaign. - Execution Control:
StartExecution,StopExecution,PauseExecution,ResumeExecution. - Live Streams: Opens persistent server-streaming connections to monitor execution parameters in real-time (
GetExecutionStatusStream,GetCampaignExecutionStateStream). - Intervention:
SubmitUserDecisionlets users handle non-trivial execution exceptions (e.g., triggering replanning or pausing for manual refills via anErrorHandlingenum). - Auditing:
GetCampaignSummaryretrieves compiled execution data logs for post-experiment analytics.
2. Hardware Middleware: AresDevices
The AresDevices service manages the physical or simulated instrument layer. It keeps track of driver instances, relays device telemetry, and fires raw commands.
- Inventory Tracking:
ListAresDevicesreturns a full inventory of available equipment along with their capability specifications (DeviceInfo). - Telemetry Streaming:
GetDeviceStateStreamprovides an async server-to-client pipeline of high-speed telemetry channels. - Instruction Dispatch:
ExecuteCommandsends an uncompiledCommandTemplatedown to the assigned driver layer for immediate execution. - Logging Control:
SetDeviceLoggerSettingsconfigures the persistent database recording filters (INTERVALorON_CHANGE).
3. Optimization and Closed-Loop Systems
AI & Optimization Drivers: AresPlannerManagementService
Manages the configuration and routing rules of AI/ML planning algorithms.
- Algorithmic Inventory:
GetAllPlannersreturns all active planning capabilities. - Direct Seeding:
SeedManualPlannerinjects explicit point arrays or file paths directly into the trial queue, bypassing active learning models when doing baseline calibration runs.
Performance Analytics: AresAnalysisService
Triggers the physical data parsing routines after an experiment wraps up.
- Evaluation:
Analyzetakes the target inputs/settings and returns an evaluated performanceAnalysisoutcome metric. - Validation:
ValidateInputsverifies that data shapes conform to expected analytical bounds before processing.
4. System Support & Utilities
Safety Controls: AresSafetyService
The safety-critical channel within ARES.
- Emergency Halt:
RequestEmergencyStoptriggers a zero-latency, high-priority safety override across all active physical device drivers to shift equipment into designated hardware safe states.
Language Server Engine: AresScriptingService
Powers the autocomplete and developer IDE backend features.
- LSP Methods:
GetCompletions,ValidateScript,GetScriptSummary,GetSignatureHelp, andGetSymbolMetadata.
Global Event Mesh: AresNotificationRpc
An asynchronous alerting engine that broadcasts system-wide notifications using a unified severity spectrum (INFO, WARNING, ERROR, DANGER, SUCCESS).
- Subscription:
Subscribeopens a long-lived push channel to relay warnings or milestones directly to standard out logs or front-end dashboard panels.
System Diagnostics: AresServerInfo
Tracks node health and resource states.
- Heartbeat:
GetServerStatusStreambroadcasts server states using a simple state enumeration:IDLE: Open and awaiting a campaign assignment.BUSY: Actively executing trial sequences or parsing data.ERROR: A system fault occurred requiring user intervention.STOPPING/STOPPED: Orderly service teardown states.
Telemetry Archiving: DeviceStateExportService
Handles bulk data transportation.
- Exporting:
GetStateExportgathers vast historical time-series sensor readings, compiles them based on a time-range filter, and serializes them into bulk formats (COMBINEDbinary sheets orZIPPEDcollections) for deep statistical offline modeling.