Skip to content

Project status

Fibril is pre-alpha infrastructure. This table distinguishes the working baseline from active design and wiring work.

For a more detailed checklist of what is wired and what conditions apply, see implemented surface.

FeatureStatusNotes
Durable queuesAvailableDurable message storage, queue state, snapshots, and replay
Publish and subscribeAvailableCustom TCP protocol with Rust, TypeScript, and Python clients
Explicit settlementAvailableACK, fail, immediate retry, and delayed retry paths
LeasingAvailableExpired leases can return to ready
BackpressureAvailablePull-based delivery and bounded prefetch
Delayed publishAvailableBroker path and Rust, TypeScript, and Python client methods are wired
Message TTLAvailablePer-message or per-queue default; expired messages drop or dead-letter. Not queue expiration
Dead letteringAvailableGlobal and per-queue policy are configurable, replay tooling is still early
Sparse queuesAvailableLazy loading and idle cleanup are wired, observability is still growing
Message inspectionAvailableBrowse active queue messages from admin tooling, with optional settled offsets and payload previews
Partitioned queuesAvailableDeclared queues can have multiple partitions, with client-side key routing and transparent fan-in
Plexus streamsAvailableFan-out channel type: every subscriber receives every record, durable named cursors, per-stream durability tiers, partitioning with client-side fan-in, and header filters. Rust, TypeScript, and Python clients
Wildcard subscribeAvailableOpt-in client.routing() subscribes to every queue or stream whose topic matches a *-glob and auto-attaches channels that start matching later, driven by a live cluster catalogue. Client-side only. Rust, TypeScript, and Python clients
Partition ownershipExperimentalEmbedded coordination can assign queue ownership, fence stale owners, and redirect clients to the current owner
ReplicationExperimentalFollower pull replication, failover promotion, in-sync checks, and replica-durable confirms are wired on this branch
Stream replicationExperimentalDurable-tier streams replicate record and cursor logs to followers with replica-durable confirms and caught-up failover, placed and owned through embedded coordination. Express tiers stay owner-only
Live repartitioningExperimentalGrow or shrink a queue’s partition count in coordinated mode, from the admin topology page
Recovery quarantineAvailableA damaged queue log is detected on recovery and isolated per the recovery.on_mismatch policy, with operator repair
Exclusive consumer groupsPartialRust, TypeScript, and Python client opt-in for one active consumer per partition, with sticky assignment and cross-broker coordinator wiring
TransactionsOut of scopeNot planned. Transactional publish/consume workflows are intentionally excluded

Informal internal measurements on a Ryzen 5950X system have observed roughly 250k+ messages/sec ingress and egress with 1KB payloads on the durable path. Plexus stream fan-out reaches roughly 1.5M delivered records/sec across sixteen readers on a single partition, and one partition fans out to hundreds of readers when delivery throughput is not the bottleneck.

These numbers are architecture sanity checks, not a rigorous benchmark suite. Hardware, durability settings, batching, queue depth, workload, and storage behavior all matter. See benchmarks for the fuller queue and stream tables.

The docs can describe current queue semantics, delayed publish and retry, configurable DLQ behavior, deployment shape, sparse-queue behavior, partitioned queues, exclusive consumer groups, Plexus streams with their durability tiers, and early benchmarks.