Kafka is a distributed system used for creating real-time streaming data pipelines and applications.
Immutable, append-only logs
Fast, resilient, scalable, high throughput
Relies on file system for storing and caching messages
Resilient and fault-tolerant by replication
Disk caching, memory mapped files instead of GC eligible memory
Scale by partitions
Ordered inside partition
As an event store: A great match for event-driven microservices