Earlier quoted context omitted.
Nats is not a replacement for pulsar or rabbitmq. It is a message passing system designed to pass lots of messages live, however if nobody is their to receive them they are lost and gone forever. There is a streaming layer but that is closer to Kafka and still does not provide the typical message model with an ack/nack API. I have used nats in several different ways but since it can be lossy its never been considered…
Sounds like zeromq to me
Also, NATS has client libraries for many languages that adds request/response semantics on top of the pub/sub semantics.