Dynamic Load Balancing and Autoscaling in Distributed Stream Processing Systems