Design a Kafka-like distributed message queue that allows producers to publish messages to named topics and consumers to read those messages independently at their own pace.
Unlike a traditional queue where messages disappear after acknowledgement, the system should behave as a durable distributed log. Messages are appended to ordered partitions, replicated across brokers, and retained for a configurable time or size window. Multiple independent consumers should therefore be able to read, replay, and reprocess the same data.