asyncapi-archived-repos / event-gateway

AsyncAPI Event Gateway
Apache License 2.0
57 stars 10 forks source link

[UseCase]: NATS Jetsream #162

Open gedw99 opened 1 year ago

gedw99 commented 1 year ago

Please provide the name of your company and/or project.

I check but no issues for this.

Basically it would be good if we can use NATS JetStream as well as Kafka.

The NATS API is pretty small now: https://github.com/nats-io/nats.go/tree/main/jetstream

This came out about a month ago and cleans up the API into a best practices pattern with a small consistent API.

I have not looked too deeply at the code in https://github.com/asyncapi/event-gateway to see how easy this would be yet.

Please describe your project.

Its an open source science platform, and we use NATS and want to use Async API so that the behaviours of the GUI and the Backend can be changed at runtime by users themselves.

We found the following challenges or difficulties...

We we like NATS more than Kafka because its easier to deploy.

You can also get free NATS Server on www.synadia.com if you down want to run your own NATS Server Global Cluster. Running a Global NATS Cluster is not hard though.

https://www.synadia.com/control-plane

I don't know how hard it is to run a fault tolerant Kafka that spans many regions. SO maybe NATS is useful here too for that reason.

Overall, we think Event-Gateway solving this is...

Is there anything else you wish to share with us?

No response

github-actions[bot] commented 1 year ago

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

gedw99 commented 1 year ago

I see your have a loose coupling in the design as kafka-secure, so i guess a nats-secure would be the proper way to do this ?

smoya commented 1 year ago

Hi @gedw99, thanks for submitting your use case.

Would you mind sharing what do you expect to integrate with AsyncAPI? What are your requirements? What do you expect from Event-Gateway to do?

Thank you!

gedw99 commented 1 year ago

Hey @smoya

just noticed that https://github.com/asyncapi/ts-nats-template is using NATS, but then what is it calling ? I mean the gateway does not support NATS so i am a bit lost

gedw99 commented 1 year ago

Hi @gedw99, thanks for submitting your use case.

Would you mind sharing what do you expect to integrate with AsyncAPI? What are your requirements? What do you expect from Event-Gateway to do?

Thank you!

to use Async API so that the behaviours of the GUI and the Backend can be changed at runtime by users themselves.

smoya commented 1 year ago

@gedw99 the AsyncAPI Event-Gateway is a piece of software that you put between your clients and your brokers and can intercept messages and act according to use logic, for example, discarding messages with an invalid payload. I don't think it is what you need though.

just noticed that https://github.com/asyncapi/ts-nats-template is using NATS, but then what is it calling ? I mean the gateway does not support NATS so i am a bit lost

https://github.com/asyncapi/ts-nats-template is a template for the https://github.com/asyncapi/generator. The generator generates code based on your AsyncAPI document files and outputs based on a template. In this particular case, it will output a basic nodejs NATS client based on your AsyncAPI document.

to use Async API so that the behaviours of the GUI and the Backend can be changed at runtime by users themselves.

I'm not sure I understand the meaning of that GUI. Do you mean you want it to document your API? I'm happy to help pointing you to the right direction, but I will need more details about that.

jonaslagoni commented 1 year ago

@gedw99 the template dont care about what nats server you are using, thats defined in your AsyncAPI document or manually 😄

gedw99 commented 1 year ago

@smoya I think i need a QuickStart example. I looked in the docs and repo but could not find one. anyone that shows stop and logic

smoya commented 1 year ago

@smoya I think i need a QuickStart example. I looked in the docs and repo but could not find one. anyone that shows stop and logic

If you can't provide more details on what your project needs and what you expect from AsyncAPI tooling to provide, I'm afraid this is gonna be hard.

github-actions[bot] commented 11 months ago

This issue has been automatically marked as stale because it has not had recent activity :sleeping:

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience :heart:

g41797 commented 10 months ago

gateway uses watermill-kafka but watermill also has watermill-nats with Jetstream support adding plug-able mechanism for proxy will solve the problem of misc. back-end providers
btw - latest non-auto update was done Sep 5, 2022 what's the status of the project?