Functionality
- Enqueue jobs one at a time, in best-effort batches, or atomically, with idempotency keys, priorities, scheduled delivery and custom metadata.
- A high-level
Workerruns the whole reserve → process → ack loop for you with bounded concurrency, optional automatic lease extension and graceful shutdown; or drop down to the rawreserve/ack/nack/extendcalls for full control. - Opt-in retries for transient RPC failures via
RetryPolicy. Retried enqueues can duplicate jobs that carry no idempotency key, so such requests are not retried on ambiguous failures. - With the default
opentelemetryfeature, the client emitstracingspans and metrics and propagates W3C trace context from the producer's enqueue span to the worker's process span. The host application owns the exporter.
The client is async-only and requires a tokio runtime.
Install
Quickstart
Enqueue a job, then run a worker that processes it (requires a running sepp server):
use Duration;
use SeppClient;
use Worker;
use ;
async
Runnable versions live in examples/, including traced.rs which wires up an OTLP exporter for end-to-end distributed tracing.
Feature flags
opentelemetry(default) — OpenTelemetry-compatible tracing spans, metrics and automatic trace context propagation.tls— TLS for the gRPC transport.
Docs
The full API reference is on docs.rs. For running and configuring the sepp server itself, see the sepp docs site.
License
sepp-rs is licensed under the MIT License. See LICENSE for details.