A very interesting read for the weekend, the rationale and major design elements behind Kafka, LinkedIn’s open source messaging system:
There is a small number of major design decisions that make Kafka different from most other messaging systems:
- Kafka is designed for persistent messages as the common case
- Throughput rather than features are the primary design constraint
- State about what has been consumed is maintained as part of the consumer not the server
- Kafka is explicitly distributed. It is assumed that producers, brokers, and consumers are all spread over multiple machines.
Original title and link: Kafka: Major Design Elements ( ©myNoSQL)