Files
api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/README.md
2025-06-10 16:01:34 +02:00

26 lines
1.2 KiB
Markdown

# Kafka Asynchronous Guidelines
There are several technologies to implement event-driven architectures, but this section is going to focus on the predominant technology on this subject: Apache Kafka.
**Apache Kafka** can be considered as a Streaming Platform which relies on the several concepts:
* Super high-performance, scalable, highly-available cluster of brokers
* Availability
* Replication of partitions across different brokers
* Scalability
* Partitions
* Ability to re-balance partitions across consumers automatically when adding/removing them
* Performance
* Partitioned, re-playable log (collection of messages appended sequentially to a file)
* Data copied directly from disk buffer to network buffer (zero copy) without even being imported to the JVM
* Extreme throughput by using the concept of consumer group
* Security
* Secure encrypted connections using TLS client certificates
* Multi-tenant management through quotas/ACLs
* Client APIs on different programming languages : Go, Scala, Python, REST, JAVA, ...
* Stream processing APIs like Kafka Streams
* Ecosystem of connectors to pull/push data from/to Kafka
* Clean-up processes for storage optimization
* Retention periods
* Compacted topics