Comments (4)
Thanks for the detailed issue, I will take a look
from springwolf-core.
I see the problem, just want to ask about the expected results:
- For a given channel (same exchange and queue), when given multiple bindings each with a different routing key, the operation binding field
cc
will be a list containing all the routing keys associated with that exchange and queue. - Given the same queue name on different exchanges, like in your example, each will have its own channel. Currently the channel name is the queue name, but that will have to change to "exchange-name/queue-name". The operation binding in this case will contain only the routing key associated with that specific channel.
Does that make sense? Please let me know if you have any thoughts, and if you'd like to talk about this further you can join the discord server https://discord.gg/HZYqd5RPTd
from springwolf-core.
Hio, sorry for not getting back to you sooner. Thanks for looking into my issue.
Mhh I see it is not easy to represent AMQP/RabbitMQ with AsyncApi, since you are very free how to use it.
So if I understand the AsyncApi-Specs correctly, a channel is something that can receive or send messages.
So for me in the AMQP/RabbitMQ world, that would be a queue or a routingKey (or exchange/queue (or exchange/queue/routingkey)). (https://github.com/asyncapi/bindings/blob/master/amqp/README.md#channel)
For me personally and how I use rabbitmq the channel is just the routingKey. The other stuff is just "bindings".
For Events the routinkKey is the event and multiple services/queues listen on it.
For Commands the routingKey is the endpoint of a single service/single queue that processes it.
The exchange doesnt really matter to me at all, since in the end they all are bound to three "main"-exchanges.
So ideally, in my case I would get two channels (one per routingKey) with a bunch of bindings. But not sure if thats within the realm of possibility in the current spec.
But I am also fine with your suggestions, if my approach would break to many other ppls docs.
from springwolf-core.
We have low usage for amqp plugin, so we will not be able to invest time in this. If someone would like to try contributing an implementation, please let us know. Closing for now.
from springwolf-core.
Related Issues (20)
- Enhancement: Add More Spec Details to the UI HOT 8
- Allow info-extensions in application.yml/props HOT 1
- DefaultAsyncApiDocketService: cache docket instance if constructed from environment properties HOT 1
- @AsyncPublisher translate into Channels as subscribe it should be publish HOT 1
- Springwolf Cloud Stream - Duplicate key issue if publisher and subscriber have a same topic HOT 1
- Align Spring cloudstream example with other examples HOT 2
- Support Avro Schemas and Schema Registry HOT 10
- Spring Cloud Stream consumer with parameterised type not returning the correct payload type HOT 4
- Kafka publishing producer creation fails in Spring Boot 3.2 HOT 3
- AsyncApiDocket bean deprecation HOT 13
- MethodLevelListener does not handle different payloads for same topic/queue
- Extend method annotations with target ANNOTATION_TYPE HOT 3
- Question on generated payload for List of objects (AsyncAPI spec) HOT 4
- Find Listener Methods on Beans that are created by configuration classes
- Spring annotations removed from some classes - problematic for 'old' Spring applications HOT 2
- Indicate in springwolf-ui when no bindings have been defined HOT 1
- Update to AsyncApi spec 3.0 HOT 7
- Using meta annotation throwing exception HOT 1
- DateTime examples in yaml show validation error in https://studio.asyncapi.com/ (issue raised in AsyncAPI Studio) HOT 18
- Markdown support HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from springwolf-core.