Below is Cursor's opinion on the viability of subscribing using NATS.
NATS JetStream. Today it uses FetchNoWaitAsync / NextAsync. NATS.Net’s ConsumeAsync is the documented long-running worker API: overlapping pull requests, per-message ack, MaxAckPending as prefetch. Protocol-wise it is still pull, but at the IJobSource layer it is the same structure (start a consumer, push into the intake queue, stop polling).
Testing
Similar to RabbitMQ, testing criteria is:
Below is Cursor's opinion on the viability of subscribing using NATS.
NATS JetStream. Today it uses
FetchNoWaitAsync/NextAsync. NATS.Net’sConsumeAsyncis the documented long-running worker API: overlapping pull requests, per-message ack,MaxAckPendingas prefetch. Protocol-wise it is still pull, but at theIJobSourcelayer it is the same structure (start a consumer, push into the intake queue, stop polling).Testing
Similar to RabbitMQ, testing criteria is:
developalongside the polling implementation, it should be immediately responsive to new messagesJOBS__HALT_ON_FAILUREenvironment variable being set totruefor major problems. Break the exception arbiter in a local test if you have to in order to confirm this.