Algorithms are operational building-blocks of a network. An important class of network algorithms deal with the scheduling of common resources among various entities such as packets or flows. In a generic setup, such algorithms operate under stringent hardware, time, power or energy constraints. Therefore, algorithms have to be extremely simple, lightweight in data-structure and distributed. Therefore, a network algorithm designer is usually faced with the task of resolving an acute tension between performance and implementability of the algorithm. In this chapter, we survey recent results on novel design and analysis methods for simple, distributed aka message-passing scheduling algorithms. We describe how the asymptotic analysis methods like fluid model and heavy traffic naturally come together with algorithm design methods such as randomization and belief-propagation (message-passing heuristic) in the context of network scheduling.