A layer on top of service.store that adds querying for and storing by date ranges.
A layer on top of `service.store` that adds querying for and storing by date ranges.
Configuration for the Arty service, including database connection details and schema definitions.
Configuration for the Arty service, including database connection details and schema definitions.
General-purpose API call memoization backed by Datahike.
Unlike service.cache (which provides time-series gap-filling for date-range
queries), this namespace provides simple key→value memoization: if the exact
same API call (same function + same params) has been made before, return the
cached result.
Storage strategy:
:memoized/result-edn
(:db.type/string), not as component entities. This avoids the ClassCastException
that occurs on warm persistent stores when Datahike's temporal index tries to
compare non-Comparable component-entity maps (AAO-49).memo-store! retracts existing entries with the same
cache-key before transacting new data (unlike time-series which accumulates).General-purpose API call memoization backed by Datahike. Unlike `service.cache` (which provides time-series gap-filling for date-range queries), this namespace provides simple key→value memoization: if the exact same API call (same function + same params) has been made before, return the cached result. Storage strategy: - Results are serialized to a single EDN string stored under `:memoized/result-edn` (`:db.type/string`), not as component entities. This avoids the ClassCastException that occurs on warm persistent stores when Datahike's temporal index tries to compare non-Comparable component-entity maps (AAO-49). - Replacement semantics: `memo-store!` retracts existing entries with the same cache-key before transacting new data (unlike time-series which accumulates).
Define the database data model and provides helpers to
Define the database data model and provides helpers to
Data storage and persistence by API call parameters.
This namespace helps structure persisted data so it is remembered by the API call parameters originally used to query it from the provider's API. This is because data caching only is valid for queries using the same parameter set.
Data is also separated by cloud provider and data type. For example, OCI usage data is namespaced
to :oci-usage/field to avoid field type collisions across clouds and metric types.
The known fields that must be indexed are declared inside service.model. We let the database
automatically declare schema entries for everything that doesn't need to be indexed when those
fields are first encountered.
Querying by date range is handled inside store.cache.
Data storage and persistence by API call parameters. This namespace helps structure persisted data so it is remembered by the API call parameters originally used to query it from the provider's API. This is because data caching only is valid for queries using the same parameter set. Data is also separated by cloud provider and data type. For example, OCI usage data is namespaced to `:oci-usage/field` to avoid field type collisions across clouds and metric types. The known fields that must be indexed are declared inside `service.model`. We let the database automatically declare schema entries for everything that doesn't need to be indexed when those fields are first encountered. Querying by date range is handled inside `store.cache`.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |