broker / queue / rust

Useful messaging without broker ceremony.

Fibril is a lightweight Rust message broker focused on durable queues, explicit delivery semantics, leasing, retries, and predictable operational behavior. Still early. The missing pieces are named, not hidden.

Durability is core and tested. Production readiness is still earned, not claimed.

queue email.send
worker leased
ack
delay 30s
queue lifecycletraffic: active
worker.rsexplicit lifecycle
while let Some(msg) = sub.recv().await? {
    match send_email(msg.content()?).await {
        Ok(_) => msg.complete().await?,
        Err(_) => msg.retry_after(30).await?,
    };
}

// retries are behavior, not ceremony
01

Durable by default

Append-only logs, snapshot, and replay are part of the model.

02

Settle explicitly

Complete, retry, or fail a message with APIs that read like intent.

03

Lease under load

Pull-based delivery and bounded prefetch make pressure visible.

current shape

Working parts, plainly stated.

The broker has a useful baseline today. Some reliability features are still being wired through the full stack.

Read project status
FeatureStatusNotes
Durable queuestestedAppend-only log, snapshot, and replay.
Explicit acknowledgementsavailableACK, requeue, and terminal failure paths.
Delayed publishinternalBroker/Stroma path exists; public client methods are TODO.
Delayed retrieswiringState support exists; public path remains incomplete.
Dead letteringstate-testedStroma policy exists; public broker config is not exposed.
BackpressureavailablePull-based delivery and bounded prefetch.
ReplicationplannedDesign work is in progress.
Transactionsnot plannedNot an initial goal.

early observation

A durable path with room to sharpen.

250k+messages/sec ingress
250k+messages/sec egress

Informal internal measurements with 1KB payloads on a Ryzen 5950X. These are architectural sanity checks, not a polished benchmark suite.