umadb-server
gRPC server implementation for UmaDB event store.
Overview
umadb-server provides the gRPC server implementation that exposes UmaDB's event store functionality over the network. It combines the storage engine (umadb-core), protocol definitions (umadb-proto), and DCB API (umadb-dcb) into a complete server library.
Features
- gRPC service implementation for the UmaDB API
- Request batching - concurrent append requests are automatically grouped for higher throughput
- Streaming for real-time event subscriptions with catch-up
- Health checks via gRPC health checking protocol
- Async runtime built on Tokio for high-performance concurrent operations
Usage
This crate is typically used by the umadb binary to run the server, but can also be embedded in custom applications:
use signal;
use oneshot;
use start_server;
async
Request Batching
The server automatically batches concurrent append requests to amortize disk I/O costs while maintaining per-request atomicity and isolation. This significantly improves throughput under concurrent load.
Streaming Subscriptions
The server supports real-time event subscriptions that:
- Start from any position in the event store
- Seamlessly catch up on historical events
- Continuously deliver new events as they are appended
- Handle backpressure gracefully
Part of UmaDB
This crate is part of UmaDB, a high-performance open-source event store built for Dynamic Consistency Boundaries.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.