Design a publish-subscribe messaging system. Publishers send messages to topics without knowing the subscribers. Subscribers declare interest in topics and receive all messages. Support at-least-once delivery, 1M messages/sec throughput, and message retention for 7 days (so a subscriber can catch up after being offline).