Skip to main content

aster_forge_runtime/
lib.rs

1//! Shared runtime primitives for Aster services.
2//!
3//! This crate contains small process/runtime building blocks that are not tied
4//! to a concrete product domain: health report aggregation, startup phase
5//! coordination, shutdown phase coordination, buffered side-effect writing, and
6//! termination signal handling. Product crates still own runtime state, audit
7//! events, background task shutdown order, database handles, and
8//! service-specific readiness checks.
9#![cfg_attr(
10    not(test),
11    deny(
12        clippy::unwrap_used,
13        clippy::unreachable,
14        clippy::expect_used,
15        clippy::panic,
16        clippy::unimplemented,
17        clippy::todo
18    )
19)]
20
21pub mod buffered;
22pub mod component;
23pub mod health;
24pub mod lease;
25pub mod lifecycle;
26pub mod shutdown;
27pub mod startup;
28
29pub use buffered::{BufferedBatchConfig, BufferedBatchWriter};
30pub use component::{
31    RuntimeComponentBuilder, RuntimeComponentBundle, RuntimeComponentDescriptor,
32    RuntimeComponentGraphError, RuntimeComponentKind, RuntimeComponentRegistry,
33    RuntimeShutdownDescriptor, RuntimeStartupDescriptor, RuntimeTaskDescriptor,
34};
35pub use health::{
36    HealthCheckDescriptor, HealthCheckOptions, HealthCheckRegistry, HealthCheckRegistryBuilder,
37    HealthCheckRequirement, HealthCheckScope, HealthCheckScopes, HealthComponentDetail,
38    HealthComponentDetailValue, HealthComponentReport, HealthMetricsRecorder, HealthStatus,
39    SystemHealthReport,
40};
41pub use lease::{
42    DEFAULT_RUNTIME_LEASE_RETRY_INTERVAL, DEFAULT_RUNTIME_LEASE_TTL, RuntimeLeaseAcquire,
43    RuntimeLeaseClaim, RuntimeLeaseConfig, RuntimeLeaseOwner, RuntimeLeaseStore,
44    new_runtime_lease_owner_id, run_runtime_lease_supervisor,
45};
46pub use lifecycle::{
47    AsterRuntime, AsterRuntimeBuilder, AsterRuntimeComponent, AsterRuntimeError,
48    RuntimeComponentBundleRegistration, RuntimeComponentWithShutdown, RuntimeServiceComponent,
49    ServiceLifecycle, ShutdownResourceComponent, TryRuntimeComponentWithShutdown,
50    runtime_component, runtime_component_with_shutdown, shutdown_resource_component,
51    shutdown_resource_component_after, try_runtime_component_with_shutdown,
52};
53pub use shutdown::{
54    RuntimeSignalError, ShutdownCoordinator, ShutdownPhaseReport, ShutdownPhaseStatus,
55    ShutdownReport, TerminationSignal, log_shutdown_report, spawn_termination_signal_handler,
56    wait_for_termination_signal,
57};
58pub use startup::{
59    RuntimeTempDirError, StartupCoordinator, StartupPhaseFailurePolicy, StartupPhaseOutcome,
60    StartupPhaseReport, StartupPhaseStatus, StartupReport, create_runtime_temp_dir_guard,
61    ensure_runtime_temp_dir, run_optional_startup_phase, run_required_startup_phase,
62};