Abstract
More and more business projects use microservice architecture, where large scale and long evolution of the project with the involvement of many developers are expected. This is due to the flexibility of scaling, the possibility of continuous deployment, ease of maintenance, and different teams can work on services without affecting the work pro-cesses as a whole, which is impossible with other architectural styles. Since micro-services are a complex structure consisting of independently designed and deployed ser-vices, communication between them can become a bottleneck, so we must be careful when considering asynchronous communication tools. The most popular open-source tools for asynchronous communication between RabbitMQ and Kafka services are considered. Although RabbitMQ and Kafka are some-times used interchangeably, their implementations are very different from each other. As a result, we cannot consider them as members of the same instrument category; one is a message broker, and the other is a distributed streaming platform. RabbitMQ is best used when we need: advanced and flexible routing rules, mes-sage timing control (managing message expiration or message delay). Advanced fault handling capabilities in cases where consumers are likely to be unable to process mes-sages (temporarily or permanently), simple implementations for consumers. Kafka is used when strict ordering of messages is required, the storage of messages for long periods of time, including the ability to replay past messages, and the ability to achieve high scale when traditional solutions are insufficient. We can implement most use cases using both platforms. However, the project ar-chitect must choose the most appropriate tool for the job. In making this choice, we must consider differences, as noted above. In other cases, when developing complex software systems, it may be tempting to implement all of the necessary messaging use cases using one platform when there are many advantages to using both platforms.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have