The versatile Apache Kafka
Use Cases and Deployment Scope
We use Apache Kafka for asynchronous communication.
For any processing that we need to do on background, we use Apache Kafka. We also set the configurations in such a way so that we can use it for retrying messages in a topic.
We also use it for data streaming which powers our data platform.
Pros
- Its extremely fast. It is able to deliver messages very quickly.
- It is very reliable, I have not yet seen any cases where messages might have dropped
- Using different configurations we can model it any way and cater to large number of business use cases.
Cons
- If there can be some way of scheduling messages to reappear that would be great.
- There should be functionality of decreasing the partitions on the fly so that we can scale down when needed.
- Apache Kafka should have better consumer UI view so that we can more details on the consumers attached.
Return on Investment
- It has reduced overhead of managing a different system for maintaining infra of asynchronus programming.
- Due to its simplicity and reliability we don't have to invest much on training engineers on it.
Usability
Alternatives Considered
Amazon Simple Queue Service (SQS) and RabbitMQ
Other Software Used
MySQL, RabbitMQ, Kubernetes



