-
Notifications
You must be signed in to change notification settings - Fork 16
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
Publish events to Spring Cloud Stream channels #2
Comments
This extension is currently mainly focused on using Spring Cloud discovery to route commands from one Axon instance to another. I'd assume Spring Cloud Stream would be a workable fit to route events from one instance to another, sure, but that's not what this extension is currently focused on. A pull request to provide this functionality would definitely be valuable of course! If this is not a workable fit for you, you can indeed use the Axon AMQP or Axon Kafka (still in beta) extensions. Ow and lastly, @mehdichitforoosh, would you mind sharing whether you'll provide a PR to implement Spring Cloud Stream support for message? |
@smcvb |
@smcvb |
An Firstly, you need to deduce whether the Spring Cloud Stream API is a push or pull mechanism. Both solution have a dedicated interface in Axon, respectively the To see actual worthwhile code samples for both usages, I'd suggest you have a look at the Axon AMQP Extension for the subscribing solution and Axon Kafka Extension for the streaming solution. |
Spring Cloud Stream API is push and also a pull mechanism(Source,Sink and Process interfaces).It has |
Good stuff @mehdichitforoosh! |
Hi. @smcvb @abuijze |
Hi. |
Thanks for your insights on this @mehdichitforoosh, and amazing to hear that Axon is the first Open Source project you are contributing too! Definitely an honor to us. What you should have done to issue a pull request, was to fork this project and create a branch dedicated for this implementation there. From there, you should be able to provide your forked branch as a pull request to the framework. |
@mehdichitforoosh Thanks for the info. I am able to successfully publish axon messages from the Command side to the spring channel, serialize it with AVRO and send it to Kafka. But Integrating the Spring's Subscribable Channel in the Query side still remains a concern if we go for AVRO deserialization. Please share your thoughts. @smcvb This seems to be a requirement on many Event Driven Platforms that is to have a very good CQRS+ES APIs. Axon seems to be perfect but it is quite challenging to integrate it with our Stream Processing pipeline. Any updates from Axon on this would be great! |
Let me provide some background here @satvista13. Note that I have tried to be clear that the Spring Cloud Extension is meant for Command Message Routing. From the stance of Axon Framework, there are three very distinct types of messages you deal with, being Commands, Events and Queries.
This is also emphasized by @abuijze in this video. That said, to cover the issue of making your own integrations, at AxonIQ we are putting a lot of effort in to creating Axon Server.
This point is exactly why we have created Axon Server. As such I am highly recommending you take a look in to that project. It greatly alleviates the non-functional requirements of connecting components (or thinking in problems like AVRO as a message contract and Kafka as a bus) and let's you as a developer focus on providing business functionality first. Due to this emphasize, we are somewhat thinly spread when it comes to the extensions. |
This comment has been minimized.
This comment has been minimized.
@satvista13 it would be better suited to discuss a question like this on the User Group or to contact us at AxonIQ regarding this. That way we can maintain focus in this issue on the main request, which is to to provide an Event Message Routing solution to Axon using Spring Cloud Streams. |
Hi @smcvb . |
No worries @mehdichitforoosh. Let's focus on pull request #5 to discuss this further instead of distributing the discussion over the issue and the PR. |
Hi.
Can Axon framework provide publish events directly to Spring cloud stream?
Or we should use spring-amqp in event-driven microservices based on Spring cloud?
Thanx.
The text was updated successfully, but these errors were encountered: