  The cloud's flexibility and promise of seamless auto-scaling notwithstanding,
its ability to meet service level objectives (SLOs) typically calls for some
form of control in resource usage. This seemingly traditional problem gives
rise to new challenges in a cloud setting, and in particular a subtle yet
significant trade-off involving load-distribution decisions (the distribution
of workload across available cloud resources to optimize performance), and rate
limiting (the capping of individual workloads to prevent global
over-commitment). This paper investigates that trade-off through the design and
implementation of a real-time messaging system motivated by Internet-of-Things
(IoT) applications, and demonstrates a solution capable of realizing an
effective compromise. The paper's contributions are in both explicating the
source of this trade-off, and in demonstrating a possible solution.
