Choose an entry path
Nereus Delay exposes two entry surfaces and two delivery modes. Choose them independently: the entry surface decides how an application reaches the service, while the delivery mode decides whether the message remains under the managed lifecycle.
Direct SDK or Delay Gateway?
| Entry | Best fit | Adds | Does not change |
|---|---|---|---|
| Direct Java SDK | Java applications that can use the Nereus Delay client directly | Local preparation and guarded Kafka/Pulsar submission | Command semantics, routing, receipts, or the Shard state machine |
| Delay Gateway | Multi-language clients or teams that need centralized authentication, quota, audit, and credential custody | A network service around the same preparation and transport boundaries | The wire Command, Command hash, or meaning of a successful submission |
Both paths use the same Semantic Core. Given the same authenticated Route snapshot and request, they prepare the same immutable command bytes. The Gateway is not a second scheduler or a separate source of truth.
MANAGED or AUTO_FAST?
MANAGED is the default and the normal choice. It places the operation in the Command Topic and preserves server-side query, cancel, reschedule, quota, audit, checkpoint, retry, DLQ, and recovery boundaries.
AUTO_FAST is explicit permission for the SDK to choose, before any network I/O, between:
- a normal managed Prepared Command; or
- a certified Pulsar native delayed-delivery request.
The choice is sealed before submission and reused on retry. A native attempt never silently falls back to managed delivery after an uncertain response. Native delivery also does not acquire the managed query, cancel, or reschedule lifecycle.
What a successful call means
A submission success proves only the receipt level returned by that path:
QUEUEDmeans the ingress Broker durably accepted a managed Command;- a native acknowledgement proves the configured native handoff result;
- neither result means that a managed Schedule has been applied or that a consumer processed the destination message.
If the managed workflow matters, retain the Prepared Command and its queued receipt, then use the applied-result and message-query paths instead of treating the initial call as final delivery.
Selection checklist
Choose the Direct SDK when the client is Java and centralized governance is unnecessary. Choose the Gateway when language neutrality, centrally enforced identity, quota, audit, or secret custody is part of the boundary. Keep MANAGED unless the caller knowingly gives up managed lifecycle operations and the Pulsar native capability is currently certified.
Continue with the lifecycle walkthrough, then read commands, messages, and receipts.