Micronaut-core: Pulsar Messaging Application Support

Created on 26 Aug 2019  路  14Comments  路  Source: micronaut-projects/micronaut-core

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.

help wanted enhancement

All 14 comments

馃憤 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-projects organization. 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?

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:

Other 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:

  • Will rename when I catch time today and push to my repo until move is made to your side
  • PulsarClient is an interface inside official Java library for Pulsar so I thought to avoid confusion and avoid using full class name for either annotation or that interface, just to simply add Producer part
  • Sorry about it's a leftover will remove and push; but I don't think it's often to use many Pulsar clients as it supports list of URLs and service URL provider, however this is one of the this I need suggestions on from other users. I'll change it to Prototype for now
  • Will remove
  • Will try to implement with rest of the refactoring
  • I'll try to make some java doc but as existing one it can only be really short until I get more input on what's good or bad and more time to write

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.

Was this page helpful?
0 / 5 - 0 ratings