1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! gRPC server for tsoracle.
//!
//! Wires four pieces together:
//! - [`tsoracle_core::Allocator`] — the sync window allocator.
//! - A user-supplied [`tsoracle_consensus::ConsensusDriver`] — leadership
//! state plus durable high-water persistence.
//! - The tonic-generated `TsoServiceServer` from `tsoracle-proto`,
//! mounted on `GetTs` and `GetTsBatch`.
//! - The internal leader-watch pipeline and failover fence, which keep
//! timestamps strictly monotonic across leader transitions.
// Panic policy (see CONTRIBUTING.md). `cfg_attr(not(test), ...)` skips the lint
// for the lib's own unit tests; integration tests are separate compilation units.
//!
//! Followers respond to RPCs with `FAILED_PRECONDITION` and a
//! `tsoracle-leader-hint-bin` binary trailer; `tsoracle-client` consumes
//! the hint to redirect without an extra round-trip.
//!
//! Use [`Server::builder`] to embed in another binary, or use the
//! `tsoracle` CLI from `tsoracle-bin` for a standalone process. The
//! [`docs`] module contains the docs.rs-rendered operations chapter; the
//! repo's `docs/key-subsystems.md` covers the same internals in depth.
pub use ;
pub use decode_leader_hint as __priv_decode_leader_hint;