Getting Started Developer Guide Feature Catalog Operator Guide Reference
Docs/Reference

Reference

CLI commands, management API, configuration, and slice API.

CLI Tools

ToolPurpose
aetherCluster management CLI — 60+ commands, batch and REPL modes
aether-nodeRun a cluster node
aether-forgeLocal cluster simulator with visual dashboard
jbctCode validation, formatting, project scaffolding

CLI Command Groups

GroupCommands
statusCluster status, leader, node count, health
nodesList nodes, roles, states
slicesCluster-wide and per-node slice listing
routesHTTP routes, cluster-wide and per-node
metricsSystem metrics, historical queries (5m/15m/1h/2h)
healthCluster health score, component status
scaleManual scaling, instance count adjustment
deployBlueprint deployment with strategy selection
artifactUpload, list, inspect artifacts
blueprintList, inspect, delete blueprints
configView and update runtime configuration
loggingDynamic log level management
eventsCluster event history and streaming
nodeDrain, activate, shutdown individual nodes
clusterBootstrap, scale, upgrade cluster
observabilityEnable/disable tracing and metrics per method
alertsActive and historical alerts
thresholdsWarning/critical threshold configuration
backupTrigger, list, restore cluster backups
schemaMigration status, manual retry
node-slicesPer-node slice listing
node-routesPer-node route listing
invocation-metricsPer-method P50/P95/P99 latency
controllerScaling controller configuration
scheduled-tasksList, pause, resume, trigger scheduled tasks
topologyCompile-time data-flow graph
workersWorker pool management and health
streamStream management, consumer groups, lag
storageAHSE storage management
certCertificate operations
ab-testA/B test management

Authentication

# Via flag
aether --api-key mykey123 status

# Via environment
export AETHER_API_KEY=mykey123
aether status

Management API

60+ REST endpoints across 13 route classes. All endpoints accept JSON and return JSON. The table below shows key endpoints — see the full API in the management API reference.

EndpointMethodDescription
/api/statusGETCluster status
/api/healthGETHealth check (liveness/readiness)
/api/nodesGETList cluster nodes
/api/slicesGETList deployed slices
/api/routesGETList HTTP routes
/api/scalePOSTManual scaling
/api/deployPOSTDeploy blueprint
/api/blueprint/publishPOSTPublish blueprint artifact
/api/metricsGETSystem and invocation metrics
/api/eventsGETCluster events
/api/configGET/PUTRuntime configuration
/api/topologyGETCompile-time data-flow graph
/metricsGETPrometheus scrape endpoint

WebSocket Endpoints

EndpointDescription
/ws/dashboardLive metrics stream
/ws/statusCluster state changes
/ws/eventsReal-time cluster events with delta broadcasting

Default Ports

PortPurposeNotes
8070+App HTTP (per node)8070, 8071, 8072... Configurable
5150Management APIConfigurable
8888Dashboard (Forge)Configurable
8080Passive Load BalancerConfigurable
4000+Cluster transport (consensus, QUIC)Configurable
4001+SWIM failure detectionAuto-derived (cluster port + 1)

Slice API

Built-In Annotations

AnnotationTargetPurpose
@SliceInterface (TYPE)Marks a service interface for annotation processing
@ResourceQualifierAnnotation (ANNOTATION_TYPE)Meta-annotation for defining custom resource qualifiers
@PgSqlParameter, InterfacePostgreSQL type-safe persistence (Aether Store)
@SqlParameterGeneric SQL connector (config: "database")
@HttpParameterHTTP client (config: "http")
@NotifyParameterNotification sender (config: "notification")
@ContentStoreQualifierParameterContent store access
@PartitionKeyRecord componentMarks partition key field for stream routing

Custom Qualifier Patterns

These are defined per-project using @ResourceQualifier. The resource type and target determine the behavior:

Resource TypeTargetPurpose
Subscriber.classMETHODPub-sub topic subscription
Scheduled.classMETHODScheduled task (cron/interval configured in TOML)
StreamPublisher.classPARAMETERStream publishing
StreamSubscriber.classMETHODStream push-based consumption
StreamAccess.classPARAMETERStream pull-based access
PgNotificationSubscriber.classMETHODPostgreSQL LISTEN/NOTIFY
ConfigurationSection.classPARAMETER, METHODTyped config injection + runtime update notification
MethodInterceptor.classMETHODMethod-level interceptors (retry, circuit breaker)

Core Types

TypePurpose
Promise<T>Asynchronous computation result. All slice methods return this
Result<T>Success or failure. Used for validation, parsing, error handling
Option<T>Present or absent value. Replaces null
CauseSealed error interface. Replaces exceptions
UnitVoid replacement for Promise<Unit>

Configuration

Aether is configured via aether.toml. Key sections:

SectionPurpose
[cluster]Cluster name, peer addresses, ports
[server]HTTP server port, worker threads
[app-http]Application HTTP server, API keys, RBAC
[database.*]Database connections
[http.*]HTTP client configurations
[cloud]Cloud provider settings
[timeouts.*]13 subsystem-specific timeout groups
[storage]AHSE tier configuration (memory/disk/S3)
[app.*]Application configuration (merged with slice defaults)
[endpoints.*]Infrastructure endpoint definitions

Environment Variables

Variables with AETHER_ prefix are imported automatically. Converted from SCREAMING_SNAKE_CASE to dot.notation.lowercase:

Environment VariableConfig Key
AETHER_DATABASE_HOSTdatabase.host
AETHER_SERVER_PORTserver.port
AETHER_CLUSTER_SECRETcluster.secret

For complete configuration reference including all timeout groups, see configuration.md and timeout-configuration.md in the repository.