Expand description
Persistent storage and sources of data consumed by APIs.
The APIs provided by this query service are generic over the implementation which actually retrieves data in answer to queries. We call this implementation a data source. This module defines a data source and provides several pre-built implementations:
FileSystemDataSource
SqlDataSource
FetchingDataSource
, a generalization of the aboveMetricsDataSource
The user can choose which data source to use when initializing the query service.
We also provide combinators for modularly adding functionality to existing data sources:
Re-exportsยง
pub use fetching::AvailabilityProvider;
pub use fetching::FetchingDataSource;
pub use fs::FileSystemDataSource;
pub use sql::SqlDataSource;
Modulesยง
- extension ๐
- fetching
- Asynchronous retrieval of missing data.
- fs
- metrics ๐
- notifier ๐
- Multi-producer, multi-consumer oneshot notification channel
- sql
- storage
- Persistent storage for data sources.
- update ๐
- A generic algorithm for updating a HotShot Query Service data source with new data.
Structsยง
- Extensible
Data Source - Wrapper to add extensibility to an existing data source.
- Metrics
Data Source - A minimal data source for the status API provided in this crate, with no persistent storage.
Traitsยง
- Transaction
- A unit of atomicity for updating a shared data source.
- Update
Data Source - An extension trait for types which implement the update trait for each API module.
- Versioned
Data Source - A data source with an atomic transaction-based synchronization interface.