The housing structures have changed with urbanization and the growth due to the construction of high-rise buildings all around the world requires end-use appliance energy conservation and management in real-time. This shift also came along with smart-meters which enabled the estimation of appliance-specific power consumption from the buildings aggregate power consumption reading. Non-intrusive load monitoring (NILM) or energy disaggregation is aimed at separating the household energy measured at the aggregate level into constituent appliances. Over the years, signal processing and machine learning algorithms have been combined to achieve this. Incredible research and publications have been conducted on energy disaggregation, non-intrusive load monitoring, home energy management and appliance classification. There exists an API, NILMTK, a reproducible benchmark algorithm for the same. Many other approaches to perform energy disaggregation has been adapted such as deep neural network architectures and big data approach for household energy disaggregation. This paper provides a survey of the effective NILM system frameworks and reviews the performance of the benchmark algorithms in a comprehensive manner. This paper also summarizes the wide application scope and the effectiveness of the algorithmic performance on three publicly available data sets.