Why Nereus Delay?
Applications often need a message to become eligible for a destination consumer no earlier than a business time. Kafka and Pulsar expose different producer, partition, delayed-delivery, and acknowledgement semantics. Nereus Delay provides a durable scheduling boundary above those systems while keeping the destination-specific evidence visible.
V1 goals
- Accept immutable Schedule, Cancel, Reschedule, Payload Commit, and control commands through a durable Command Topic.
- Apply the complete Shard Log in source order to one RocksDB database per Delay Shard.
- Schedule destination work with persistent Destination Lanes, bounded fairness, retry policy, and lane-local failure isolation.
- Make query, cancellation, rescheduling, recovery, retention, and cleanup depend on explicit durable state.
- Avoid early delivery when the scheduler's trusted time is uncertain.
The central boundary
deliverAt is a not-before visibility boundary. It is not a promise that publishing starts exactly at that instant or that a consumer receives the message at that instant. Backlog, target throttling, retries, Broker dispatch, and consumer availability can make delivery later.
The service also distinguishes a Command being queued from the Delay Shard authoritatively applying that Command. A Broker acknowledgement alone cannot prove that a delayed message exists.
What this product does not promise
Nereus Delay does not claim universal exactly-once delivery, global ordering, arbitrary per-message destination configuration, online migration between destinations, or release readiness while the external adapter and evidence gates remain incomplete. See V1 non-goals and current project status.