XLabs/kamaji

Communication method

Opened this issue · 5 comments

What is the chosen method to communicate all components present in the ecosystem? I would use a Message broker, like RabbitMQ or something alike.

Hmmm, I wouldn't say "all components", I can foresee that we'll need more than one transport. I can definitely think of scenarios where we can benefit of the easy error handling provided by synchronous communication methods such as http and grpc, and on the other hand I can also think of places we'll need queuing and event mechanisms

As for what to use as the underlying messaging technology, this posses a whole another question...

On one side I think: if we want to have Kamaji become part of the open source tools facilitating the usage of wormhole protocol, then we'd need to choose an open source technology for the messaging layer. Otherwise, I'd recommend to just get started using SQS since it's what we already have setup and it's really easy for us to work with...

If we were to go with the open source technology path... You've got a kafka fan in front of you :)

When I was using RabbitMQ in the past, I was able to see a couple of benefits of using kafka instead... but was too late.

I don't really mind the brand we could use, you are right is best to use a open source one. Is just that I see benefits on using a message broker like Rabbit, Kafka or any queue oriented messaging service, because of the asynchronous handling of messages with those tools. It also decouple components from each other. As you said, using that kind of infrastructure makes error handling difficult while using grpc or http is pretty straight forward. A lot of things to think about :)