How to implement Kafka like plugin capabilities using NATS messaging

I would like to use the capabilities of the Neo4j plugin, 3 modes of operation with Nats.io cloud version called NGS which supports a Go or Nodejs client which use the NATS APIs and JWT key.

NGS is a global communications system built on NATS.io.

Nats is very simple see below commands
Available Commands:
pub Publish to a subject on your NGS account
qsub Subscribe to a subject, as part of a queue, on your NGS account
reply Listen on a subject on your NGS account, and reply to messages
req Send a request to a subject on your NGS account
sub Subscribe to a subject on your NGS account

Is it possible to use NGS using the Kafka plugin like capabilities?

The kafka plugin is indeed called "neo4j-streams" because it's intended (with time) to support publishing/consuming from streaming systems, and of course kafka is far from the only one of those.

At this point though we don't have much expertise with NATS.io or familiarity with it. Is it possible? Certainly yes - but probably the best I could recommend is to take a look at the Kotlin source code to neo4j-streams and consider opening a PR to support NATS.io. Supporting messaging to that platform out of the box today isn't something neo4j-streams can do, unless it happens that NATS.io exposes a kafka-compliant interface.

I'm not sure about the NATS having a kafka-compliant interface, but NATS does have a bridge to Kafka.GitHub - nats-io/nats-kafka: NATS to Kafka Bridging