Stepankha Yuliannia wrote:Hi Alex,
What is your criteria for whether you should we have a message broker in the middle of your solution? Like RabbitMQ, ZeroMQ, Apache Kafka etc.? I'm especially interested from functional programming point of view.
P.S. I understand your book is focused on an application architecture, but would this be covered too?
Hi Stepankha, thank you for your question!
Indeed, this relates to Solution Architecture rather than to Application Architecture. I don't really have that much experience with message brokers, but it seems I'd need them if:
- I want to receive messages asynchronously and concurrently
- I want to have some rules of storing messages
- There can be many interacting services, and it's better they could send messages not directly but indirectly
- There can be some other consumers like cold log storages and DBs for data analysis, and I'd like to connect them without touching my primary applications. For example, the system already works, and I need to do some analytics. I don't want to edit my code just to add this functionality, but I can connect external DBs and analytic services right to the queue.
I might be missing some criteria here, it's what thoughts I have on message brokers.