It would be great if Micronaut natively supported creating Apache Pulsar message/stream driven Microservices.
Similar to Kafka in the data streaming sense, but also crosses over with RabbitMQ in terms of far better queuing support.
馃憤 This would be great.
Started playing with it on my profile not sure will it help at all, is there any kind of good enough code here to continue on work.
@harissecic nice!
@harissecic very nice indeed!
We have a GitHub template repository that you could use to get our build, documentation and publishing standards.
If it gets compliant with that, and gets into a state that a milestone could be released, we can consider hosting it in the micronaut-projects organization. That way, you could ask for reviews so that we can provide feedback about the Micronaut-specific parts.
@harissecic very nice indeed!
We have a GitHub template repository that you could use to get our build, documentation and publishing standards.
If it gets compliant with that, and gets into a state that a milestone could be released, we can consider hosting it in the
micronaut-projectsorganization. That way, you could ask for reviews so that we can provide feedback about the Micronaut-specific parts.
Thanks, I'll try out template as I started with Kafka integration and changed stuff which I realised is bad now
Hello again, I've managed to create really basic consumers and producers for this. However I didn't get any feedback on code nor questions at gitter so I'm asking here if someone can take a look and have feature suggestion or complaint. I have an idea to include support multi-tenant producers but I'm not sure is it useful although Micronaut has good solution for multitenancy and pulsar is by default multitenant it doesn't mean it's really necessary to do so.
@harissecic nice, where is the code?
@graemerocher It's here: https://github.com/harissecic/micronaut-pulsar
Great, will take a look
Great, will take a look
Thanks a lot.
@harissecic looks like a good start. There is clearly still quite a bit of work to do on docs and more test coverage. It may be worth setting up micronaut-projects/micronaut-pulsar which you can send a PR to and that will be a bit easier as you will be able to send a PR and then we can do a more extensive review of the code. Would you like me to create this repo? We are doing a similar process for the upcoming JMS support https://github.com/micronaut-projects/micronaut-jms/pull/1
In terms of some initial thoughts and many of these things maybe speak to my inexperience with Pulsar:
io.micronaut.configuration.pulsar to just io.micronaut.pulsar. We are moving away from including configuration in the name.PulsarProducerClient can just be PulsarClient? Or does Pulsar have other clients of clients?methods doesn't seem to be used here https://github.com/harissecic/micronaut-pulsar/blob/master/pulsar/src/main/java/io/micronaut/configuration/pulsar/scope/PulsarClientScope.java#L84remove should probably be implemented to cleanup the bean by id https://github.com/harissecic/micronaut-pulsar/blob/master/pulsar/src/main/java/io/micronaut/configuration/pulsar/scope/PulsarClientScope.java#L99Other than that we will need to work on test coverage, documentation and making the documentation use code snippets that are tested and demonstrate Java/Kotlin/Groovy
Great start though!
@graemerocher thanks for review. Would be nice to move project to your side. It may be more visible to potential contributors.
To address points one by one before move:
When you make the repo please let me know to move this on your side in hope to get more contributors
Thanks, I have created https://github.com/micronaut-projects/micronaut-pulsar as a placeholder. You can send a PR there for review once you have got to the point where you feel it is ready.
Having it without Micronaut projects will indeed encourage more contributors to get on board. We have seen that with other projects like graphql, ignite and so on
Quick update, this https://github.com/micronaut-projects/micronaut-pulsar/pull/1 one is passing now and if merged, this issue can be closed.