This paper presents an approach to supporting the development process for large-scale smart city applications that leverage edge computing resources. A smart city testbed called CitiFlow is developed, which uses Distributed Node-RED as the underlying middleware to facilitate the decomposition and communication among sub components of large scale smart city applications. For the evaluation, a lab-based setup and a real world deployment were executed and are presented.