Expand description
Standalone DDS Durability-Service daemon (ADR 0009).
Crate zerodds-durability-service. Safety classification: STANDARD.
From an RTPS point of view the service is just another participant. For each served topic it:
- Ingests via a
RELIABLE / TRANSIENT_LOCAL / KEEP_ALLreader — it receives every sample the application writers publish (and, thanks toTRANSIENT_LOCAL, the writer history if it joins late). - Stores each sample in a
DurabilityStore(sqlite/file/in-memory). - Replays via a
TRANSIENT_LOCAL / KEEP_ALLwriter — a late-joining reader matches it and the standard RTPS path delivers the history. This keeps working after the original writer’s process has died. - Startup-sync: on
servethe replay writer is primed from the store, soPERSISTENThistory survives a full service restart with no application writer present.
§Scope (increment 1)
Unkeyed topics (RawBytes = single instance). The replay writer assigns
its own sequence numbers — a durability service is a new logical source, so
the original writer’s sequence numbers need not be preserved. Per-instance
history for KEYED topics + exact sequence preservation need the per-sample
KeyHash/sequence exposed on the reader API and are a documented follow-up.
Structs§
- Durability
Service - The durability daemon. Uses TWO participants per domain — one for ingest
(reader) and one for replay (writer) — that mutually ignore each other.
This is set up before any endpoint exists, so the ingest reader can never
match the replay writer (race-free echo-loop prevention). Both serve any
number of TRANSIENT/PERSISTENT topics over a single
DurabilityStore.
Enums§
- Service
Error - Errors from the durability daemon.
Type Aliases§
- Result
- Result alias.