Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

can vert.x event bus replace the need for Kafka?

I am evaluating the vert.x framework to see if I can reduce the Kafka based communications between my microservices developed using spring boot.

The question is: Can I replace 1. Kafka with vert.x event bus and 2. spring boot microservices with vert.x based verticles

Any pointers will be of great help.

Thanks in advance.

like image 735
rrshah Avatar asked Dec 19 '18 06:12

rrshah


Video Answer


1 Answers

The event-bus is not persistent. You should use it for fast verticle-to-verticle communications, and more generally to dispatch events where you know that you can loose them if you have some crash.

Kafka streams are persistent, and you should send events there because either you want other (possibly non-Vert.x) applications to consume them, and/or because you want to ensure that these events are not being lost in case of failure.

A reactive (read "scalable and fault-tolerant") Vert.x application typically uses a combination of both the event-bus and some replicable messaging systems like AMQP / Kafka / etc.

like image 141
jponge Avatar answered Sep 17 '22 13:09

jponge