When a Topology is defined and submitted, it will be uploaded to Nimbus by the method provided by Storm. It will verify the Storm itself and Topology. It mainly checks whether the status of Storm is active and if Topology has an instance with the same name. Nimbus will then make a detailed budget for each Topology, such as workload (Tasks). It will set the number of Tasks for spout/bolt according to the parallelism hint parameter defined in Topology. We assign its corresponding task. Then we write the information of the assigned task to the /task directory on Zookeeper. Nimbus then assigns jobs to supervisor by writing the task information to N in zookeeper's /assignments. We check the directory at regular intervals to check if there is a new task assignment for nimbus. When there is a newly submitted task, it will first download the code and then schedule the worker to perform these tasks based on the task information, as shown in Figure 3.