NotificationBus for cross-node message delivery fan-out: - NotificationBus trait: publish(topic) + subscribe(topic) -> Notify - InMemoryNotificationBus: single-node default via tokio::sync::Notify - Designed for Redis pub/sub or NATS replacement in multi-node deploys - 3 async tests: publish wakes, timeout without publish, independent topics Health endpoint enhancements for load balancer awareness: - HealthResponse proto: add node_id, version, uptime_secs, storage_backend - ServerState: add node_id, start_time, storage_backend fields - Health handler returns full node identity for multi-node monitoring
23 lines
563 B
Rust
23 lines
563 B
Rust
//! Domain types and service logic — protocol-agnostic.
|
|
//!
|
|
//! These types define the server's business logic independently of any
|
|
//! serialization format (Cap'n Proto, Protobuf). RPC handlers translate
|
|
//! wire-format messages into these types, call service functions, and
|
|
//! translate the results back.
|
|
|
|
pub mod types;
|
|
pub mod auth;
|
|
pub mod delivery;
|
|
pub mod keys;
|
|
pub mod channels;
|
|
pub mod users;
|
|
pub mod blobs;
|
|
pub mod devices;
|
|
pub mod groups;
|
|
pub mod p2p;
|
|
pub mod account;
|
|
pub mod moderation;
|
|
pub mod notification;
|
|
pub mod rate_limit;
|
|
pub mod recovery;
|