QUICK LINKS
CONTACT INFORMATION
Email – info@filioforce.ca
Address – 2501-565 Sherbourne st, Toronto, Canada, ON M4X 1W7
The further you go down the programming road, the more you realise that only knowledge of a programming language is not enough. Any more or less serious project uses various technologies and tools that are not tied to a language or environment as such. We continue to introduce our readers to the world of programming. In Filio Force it company blog we will talk about such a backend-development tool as Apache Kafka.
Kafka was developed at LinkedIn in 2011 and has been greatly improved since then. It is written in Scala and Java and named after the writer Franz Kafka.
Today, Kafka is an entire platform that provides enough redundancy to store huge amounts of data. The main task that Kafka performs is to transfer data from the source system to the target system. In this scheme, everything is simple. But what if you have 4 source systems and 6 target systems. In that case you will have to implement 24 integrations. And each integration requires a communication protocol, data format, and schema validation. You also need to fulfil non-functional requirements such as reliability and delivery guarantee, connecting new recipients, connecting different stacks.
Apache Kafka is a cluster of multiple brokers, each serving a different part of the total load, according to the Filio Force company. Each message stream in Kafka is called a topic. For example, a separate topic can collect data from web analytics, which records site users’ visits, a separate one can collect data on orders, a separate one can collect facts about newsletter subscriptions. Each such topic is divided into partitions. These partitions are evenly distributed across all brokers of the cluster to increase throughput. A client writing to a topic is called a ‘producer’, and a client reading from a topic is called a ‘consumer’.
Nowadays, almost every application works with data in one way or another, and the larger the application, the more data they have to deal with. Kafka allows you to store and process huge streams of data in real time. This can be information about users, their activity, messages, logs, etc. It is used in more than 2000 companies.
Filio Force Inc developers gave examples: