Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Extension Proposal] Quarkus Reactive Messaging NATS JetStream extension #37859

Closed
kjeldpaw opened this issue Dec 20, 2023 · 6 comments · Fixed by quarkiverse/quarkiverse-devops#199
Labels
area/quarkiverse This issue/PR is part of the Quarkiverse organization area/reactive-messaging area/smallrye kind/extension-proposal Discuss and Propose new extensions

Comments

@kjeldpaw
Copy link

Description

Quarkus Reactive Messaging NATS is a Quarkus extension that brings in support for NATS JetStream for Reactive Messaging.

I'm working on an extension that makes it easy to integrate with NATS.io JetStream (https://docs.nats.io/nats-concepts/jetstream). The extension is based on reactive messaging (https://github.com/smallrye/smallrye-reactive-messaging). I would like to donate my work and help making the extension even better.

Code example:

@Channel("data")
Emitter<String> emitter;

@Incoming("data-consumer")
public Uni<Void> data(Message<String> message) {
    return Uni.createFrom().item(message)
            .onItem().invoke(this::handleData)
            .onItem().ignore().andContinueWithNull();
}

Properties:

mp.messaging.outgoing.data.connector=quarkus-jetstream
mp.messaging.outgoing.data.subject=data
mp.messaging.outgoing.data.stream=test

mp.messaging.incoming.data-consumer.connector=quarkus-jetstream
mp.messaging.incoming.data-consumer.subject=data
mp.messaging.incoming.data-consumer.stream=test

quarkus.reactive-messaging.nats.servers=${nats.server}
quarkus.reactive-messaging.nats.username=${nats.username}
quarkus.reactive-messaging.nats.password=${nats.password}
quarkus.reactive-messaging.nats.ssl-enabled=false
quarkus.reactive-messaging.nats.auto-configure=true

Repository name

quarkus-reactive-messaging-nats-jetstream

Short description

Easily integrate to NATS.io JetStream

Repository Homepage URL

https://quarkiverse.github.io/quarkiverse-docs/<REPOSITORY_NAME>/dev/

Repository Topics

  • quarkus-extension
  • nats.io
  • jetstream
  • reactive-messaging
    ...

Team Members

Additional context

No response

@kjeldpaw kjeldpaw added area/quarkiverse This issue/PR is part of the Quarkiverse organization kind/extension-proposal Discuss and Propose new extensions labels Dec 20, 2023
@quarkus-bot
Copy link

quarkus-bot bot commented Dec 20, 2023

/cc @aloubyansky (extension-proposal), @cescoffier (reactive-messaging), @gastaldi (extension-proposal), @gsmet (extension-proposal), @maxandersen (extension-proposal), @ozangunalp (reactive-messaging)

@gastaldi
Copy link
Contributor

https://github.com/quarkiverse/quarkus-reactive-messaging-nats-jetstream created! See https://hub.quarkiverse.io/checklist/#after-the-repository-is-created for the next steps. Enjoy!

@flashpixx
Copy link

Hello, I'm working on a project with NATS, so it would be nice if there is a pre-version available, so I can test it directly with my code and I can offer some feedback as well.

@kjeldpaw
Copy link
Author

Hi @flashpixx I'm on Christmas holiday but I will start committing my code after Christmas

@kjeldpaw
Copy link
Author

kjeldpaw commented Jan 3, 2024

Hi @flashpixx I'm still working on committing my source to the repo. You can find my work on this branch: https://github.com/quarkiverse/quarkus-reactive-messaging-nats-jetstream/tree/feature/jetstream-connector

@flashpixx
Copy link

flashpixx commented Jan 5, 2024

Can you show a minimal example to receive / send messages please? I can compile it and use the runtime library, but it is a little bit difficult to understand it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/quarkiverse This issue/PR is part of the Quarkiverse organization area/reactive-messaging area/smallrye kind/extension-proposal Discuss and Propose new extensions
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants