1

I'm a java spring boot microservices developer who's more or less comfortable with multi-threading/parallel and asynchronous programming although never had the opportunity to really master it. Same with messaging services like JMS or Rabbit MQ.

I'm about to start my journey into two completely separate programming paradigms which are totally new to me.

  1. Domain-driven design and event-driven architecture with CQRS
  2. Reactive programming

My question is do I need to have an absolutely perfect grasp of multi-threading/parallel and asynchronous programming in order to learn and understand reactive programming better and the same for messaging (especially asynchronous messaging) to have a good understanding of event-driven architecture with CQRS?

I understand it's a very subjective question so just looking for general opinions, suggestions, and recommendations.

1 Answers1

0

I think for reactive/async, it helps to have some idea of multi-threading, if only to sometimes understand why it's useful, but I wouldn't say that it's necessary. If you have some experience with it and with inter-service messaging you'll be fine.

If in doubt, it might be worth trying the Reactive Architecture series of courses from Lightbend Academy. As of this writing, they're free and in my experience, they cover the territory well.

Levi Ramsey
  • 18,884
  • 1
  • 16
  • 30