How to properly microservice axon?

Hi, I’m trying to build simple project management tool (just for edu purposes)

I’d like to have such services:

  1. User service - user aggregate
  2. Project service - project aggregate, task aggregate
  3. Reporting service - no idea what’s supposed to go there yet
  4. Admin service -same as reporting

Each service should be separated into two separate ones, one for commands, 2nd one for query

I’m wondering, how can I properly setup axon on each service so that:

  1. It’s safe to scale it with kubernetes
  2. e.g. Project service can receive aggregate events from user service

Because I plan to use kubernetes and rabbitmq (or kafka) I don’t need distributed command bus.
I think i need distributed event bus, so that when some aggregate accepts command and sends event it’s received by corresponding query service.
How can I achieve that?

I’d like to have some websockets for the UI. I shouldn’t be listening directly on the event queue as these updates might be not consumed yet. I should probably broadcast new messages once the query part saves event to its database. Is there anything in Axon that could help me out?

btw, if anyone of you have some examples then I’d be delighted

Have you checked our webinars? This one especially could be interesting:
https://www.youtube.com/watch?v=3NmMDUlPkgw

Check out our channel for more how-to guides: https://www.youtube.com/c/AxonIQ

Because I plan to use kubernetes and rabbitmq (or kafka) I don’t need distributed command bus.

I don’t really see how they’re related. Kafka and Rabbit are good for pub-sub, but quite inefficient for routing commands. I recommend using the distributed command bus with this setup.

Regarding the UI, take a look at our new subscription queries. They’re probably what you’re looking for: https://www.youtube.com/watch?v=b3NLDxa6MWE

Cheers,

Allard